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

VAFCTFMF.m

Go to the documentation of this file.
  1. VAFCTFMF ;ALB/JLU,LTL-Broadcast Master File Update for Treating Facility ;09/03/98
  1. ;;5.3;Registration;**149,261,255,307,361,428,697**;Aug 13, 1993
  1. ;
  1. ;Reference to ^ORD(101 supported by IA #872
  1. BCKTFMFU ;
  1. ;This entry point is used to generate a Master File update
  1. ;for each patient that is in the "AXMIT" cross reference in the PIVOT
  1. ;file.
  1. ;INPUTS NONE
  1. ;OUTPUTS Sending of MFU messages
  1. ;
  1. ;IA: 2056 - $$GET1^DIQ
  1. ;IA: 10106 - $$HLDATE^HLFNC
  1. ;IA: 2161 - INIT^HLFNC2
  1. ;IA: 2164 - GENERATE^HLMA
  1. ;IA: 2270 - GET^HLSUB
  1. ;IA: 2701 - $$GETICN/$$HL7CMOR/$$IFVCCI^MPIF001
  1. ;IA: 2702 - $$MPINODE^MPIFAPI
  1. ;IA: 3073 - EN1^RGADT2
  1. ;IA: 2796 - EXC/STOP^RGHLLOG
  1. ;IA: 10141 - $$PATCH^XPDUTL
  1. ;IA: 2171 - $$WHAT^XUAF4
  1. ;
  1. ;quit if CIRN is not installed
  1. N X S X="MPIF001" X ^%ZOSF("TEST") Q:'$T
  1. N PDFN,LP,EVTDATE,EVTR,SUBSCN,VAFCMPI
  1. I '$D(^VAT(391.71,"AXMIT",5)) G BCKQ
  1. F LP=0:0 S LP=$O(^VAT(391.71,"AXMIT",5,LP)) Q:'LP D
  1. .S PDFN=$P($G(^VAT(391.71,LP,0)),U,3)
  1. .I PDFN="" D EXC^RGHLLOG(212,"Unable to send TF update due to unknown patient for IEN#"_$G(LP)) D STOP^RGHLLOG(1) Q ; log exception
  1. .I PDFN'=""&'$D(^DPT(PDFN,0)) D EXC^RGHLLOG(212,"Unable to send TF update due to unknown patient for IEN#"_$G(LP)) D STOP^RGHLLOG(1) Q ; log exception
  1. .;making sure that your site is added or updated before continuing, FILE will also add CMOR
  1. . I '$$PATCH^XPDUTL("RG*1.0*4") D FILE^VAFCTFU(PDFN,+$$SITE^VASITE,1)
  1. .S SUBSCN=$$MPINODE^MPIFAPI(PDFN) I +$G(SUBSCN)<1 D XMITFLAG^VAFCDD01(LP,0,1) Q
  1. .; if no subscribers (piece 5) and no CMOR (piece 3), turn off xmit flag for Pivot file.
  1. .I +$P(SUBSCN,"^",3)<1,(+$P(SUBSCN,"^",5)<1) D XMITFLAG^VAFCDD01(LP,0,1)
  1. .;Removed section to create a new subscription as it is no longer used.
  1. .;1/23/06
  1. .I +$P($G(SUBSCN),"^",5)<1 D XMITFLAG^VAFCDD01(LP,0,1) Q
  1. .K HLL D GET^HLSUB($P(SUBSCN,"^",5),"","VAFC MFU-TFL CLIENT",.HLL) I '$D(HLL("LINKS")) D XMITFLAG^VAFCDD01(LP,0,1) Q
  1. .K HLL
  1. .;Update last treatment date and event reason
  1. .I $$PATCH^XPDUTL("RG*1.0*4") D EN1^RGADT2(PDFN,1)
  1. .I PDFN DO
  1. ..K VAFCERR
  1. ..I $D(^DGCN(391.91,"APAT",PDFN)) D TFMFU(PDFN)
  1. ..;CALL TAG TO FLIP TRANSMIT FIELD IN VAT(391.71
  1. ..D:$G(RESLT) XMITFLAG^VAFCDD01(LP,0,1)
  1. ..;store resulting message in ADT/HL7 PIVOT file
  1. ..S RESLT=$S($G(RESLT)]"":RESLT,1:$P($G(ER),U,2))
  1. ..D FILERM^VAFCUTL(LP,RESLT)
  1. ..K ER,RESLT,VAFCERR Q
  1. BCKQ Q
  1. ;
  1. TFMFU(PDFN) ;
  1. ;sends a MFU message for a single patient
  1. N HLEID
  1. S ER=$$INIT
  1. I ER G TFMFUQ
  1. D BLDTFMFU(PDFN)
  1. ;if error from build don't send
  1. I '$D(VAFCERR) D SEND
  1. D KILLHL7
  1. TFMFUQ Q
  1. ;
  1. INIT() ;
  1. ;initialize HL7 variables
  1. S ER=0
  1. S HLEID=+$O(^ORD(101,"B","VAFC MFU-TFL SERVER",0))
  1. I 'HLEID S ER="1^Unable to initialize HL7 variables - Protocol not found." G INITQ
  1. S HL=""
  1. D INIT^HLFNC2(HLEID,.HL)
  1. I $O(HL(""))="" S ER="1^"_$P(HL,U,2) G INITQ
  1. I $G(HL)]"" S ER=$G(HL)
  1. INITQ Q ER
  1. ;
  1. ;
  1. BLDTFMFU(PDFN) ;
  1. ;builds the segments and formats the HL7 MFU message
  1. N CTR,INST,ICN,INSTNUM,IEN,TF,EC,INSTNAM,PPF,CMOR
  1. S PPF=$$IFVCCI^MPIF001(PDFN)
  1. S EC=$E(HL("ECH"),1,1)
  1. S CTR=1
  1. S TFMF(1)="TFL",TFMF(2)="",TFMF(3)=$S(PPF>0:"REP",1:"UPD"),TFMF(4)="",TFMF(5)="",TFMF(6)="NE"
  1. S CMOR=$$HL7CMOR^MPIF001(PDFN,EC)
  1. I CMOR'>0 K CMOR
  1. S HLA("HLS",CTR)=$$EN^VAFHLMFI(HL("ECH"),HL("FS"),HL("Q"),"TFMF")_HL("FS")_$G(CMOR)
  1. K TFMF
  1. S ICN=$$GETICN^MPIF001(PDFN)
  1. S TFMF(1)="MAD",TFMF(2)=""
  1. I PPF>0 DO
  1. .F INST=0:0 S INST=$O(^DGCN(391.91,"APAT",PDFN,INST)) Q:'INST S IEN=$O(^(INST,0)),TF=^DGCN(391.91,IEN,0) DO
  1. ..S INSTNAM=$$WHAT^XUAF4(+$P(TF,U,2),.01)
  1. ..S INSTNUM=$$WHAT^XUAF4(+$P(TF,U,2),99)
  1. ..S TFMF(3)=$$HLDATE^HLFNC($P(TF,U,3))
  1. ..S TFMF(4)=INSTNUM_EC_INSTNAM_EC_"VA"_EC_+ICN_EC_"ICN"_EC_"VA"
  1. ..D SETMFE
  1. ..D SETZET(IEN)
  1. ..Q
  1. E DO ;NOT THE PRIMARY FACILITY
  1. .S INSTNAM=$$SITE^VASITE(),INST=+INSTNAM
  1. .S IEN=$O(^DGCN(391.91,"APAT",PDFN,INST,0))
  1. .;if there was a subscription but no TF add it, quit and don't send
  1. .I +IEN'>0 D FILE^VAFCTFU(PDFN,INST,1) S VAFCERR=1 Q
  1. .S TF=$G(^DGCN(391.91,IEN,0))
  1. .S TFMF(3)=$$HLDATE^HLFNC($P(TF,"^",3))
  1. .S TFMF(4)=$P(INSTNAM,U,3)_EC_$P(INSTNAM,U,2)_EC_"VA"_EC_+ICN_EC_"ICN"_EC_"VA"
  1. .D SETMFE
  1. .D SETZET(IEN)
  1. .Q
  1. BLDTFMFQ K TFMF
  1. Q
  1. ;
  1. SETMFE S CTR=CTR+1
  1. S HLA("HLS",CTR)=$$EN^VAFHLMFE(HL("ECH"),HL("FS"),HL("Q"),"TFMF")
  1. Q
  1. SETZET(IEN) ;Date of Last Treatment event type ZET segment
  1. S CTR=CTR+1
  1. S HLA("HLS",CTR)="ZET"_HL("FS")_$$GET1^DIQ(391.91,+IEN_",",.07)
  1. Q
  1. ;
  1. SEND ;
  1. ;sends the MFU message
  1. D GENERATE^HLMA(HLEID,"LM",1,.HLRESLT,"","")
  1. S RESLT=$S(+HLRESLT:HLRESLT,1:$P(HLRESLT,U,3))
  1. Q
  1. ;
  1. KILLHL7 ;
  1. ;kills off the variables from the HL7 package.
  1. K HL,HLA,HLECH,HLEID,HLFS,HLMTIEN,HLMTIENA,HLQ,HLRESLT,HLN,HLSAN
  1. Q