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

BHLJVN1.m

Go to the documentation of this file.
  1. BHLJVN1 ;SSI/EJN - Manual and Nightly Routine for JVN GIS Interface [ 10/10/2002 10:43 PM ]
  1. ;;3.01;BHL IHS Interfaces with GIS;**3**;FEB 15, 2001
  1. ;
  1. ; Program to transmit GIS O01 HL7 Messages manually or
  1. ; through a nightly TaskMan batch process via the
  1. ; IHS Scheduling file (#44). HL7 Messages are transmitted
  1. ; to Cloverleaf for the Joslin Vision Network.
  1. ;
  1. N BHLJDFN,BHLJNAME,BHLJDOB,BHLJSSN,BHLJCNAM,BHLJCLIN
  1. ;
  1. MAN ; Manual transmission of O01 Messages to Cloverleaf for JVN
  1. ;
  1. D RES
  1. ;
  1. S (BHLJDFN,BHLJNAME,BHLJDOB,BHLJSSN,BHLJCNAM,BHLJCLIN)=""
  1. ;
  1. K ^TMP("BHLJVN")
  1. ; Call standard RPMS patient lookup code
  1. D EN^DDIOL("","","!!!!!")
  1. S DIC="^DPT(",DIC(0)="AEMQ"
  1. D ^AUPNLK
  1. K DIC
  1. ;
  1. G EXIT:Y<0
  1. ; Check if patient is dead, if so then ask for another selection
  1. I $P($G(^DPT(DFN,.35)),U,1)'="" D
  1. . D EN^DDIOL("This patient is no longer living, please select another patient.","","!!")
  1. . S DIC="^DPT(",DIC(0)="AEMQ" D ^AUPNLK
  1. K DIC
  1. ;
  1. G EXIT:Y<0
  1. ; Set variables from buffer
  1. S BHLJNAME=$P($G(^DPT(DFN,0)),U)
  1. S BHLJDFN=DFN,BHLJDOB=$$FMTE^XLFDT(DOB),BHLJSSN=SSN
  1. ;
  1. ; Select Clinic for appointment
  1. D EN^DDIOL("","","!!")
  1. S DIC="^SC(",DIC(0)="AEMZQ",DIC("A")="Select CLINIC: ",DIC("S")="I $P(^(0),U,3)=""C""" D ^DIC
  1. K DIC
  1. ;
  1. G EXIT:Y<0
  1. ; Set variables from buffer
  1. S BHLJCLIN=$P($G(Y),U,1),BHLJCNAM=$P($G(Y),U,2)
  1. ;
  1. ; Display selected patient information, ask if want to transmit to JVN
  1. D EN^DDIOL("The following patient has been selected:","","!!")
  1. D EN^DDIOL(" Name: "_BHLJNAME,"","!")
  1. D EN^DDIOL(" DOB: "_BHLJDOB,"","!")
  1. D EN^DDIOL(" SSN: "_BHLJSSN,"","!")
  1. D EN^DDIOL(" HRN: "_$$HRN^AUPNPAT(BHLJDFN,DUZ(2)),"","!")
  1. D EN^DDIOL(" Scheduled Date/Time: "_$$FMTE^XLFDT($$NOW^XLFDT()),"","!")
  1. D EN^DDIOL(" Location: "_BHLJCNAM,"","!")
  1. D EN^DDIOL("","","!!")
  1. K DIR
  1. S DIR(0)="YA"
  1. S DIR("A")="Transmit information to Joslin Vision Network NOW? "
  1. S DIR("B")="No"
  1. D ^DIR
  1. G EXIT:Y<0!(Y="")!(Y["^")
  1. K DIR
  1. ;
  1. ; Set ^TMP("BHLJVN") global with variables for HL7
  1. S ^TMP("BHLJVN",$J,1)=BHLJDFN_U_BHLJCLIN_U_$E($$NOW^XLFDT(),1,12) ;maw
  1. ;
  1. ; Call GIS to send HL7 message for patient to Cloverleaf for JVN
  1. I Y=1 D VAR
  1. G MAN
  1. Q
  1. NJOB ; Nightly Job
  1. ;
  1. ; This can be queued as a nightly job in TaskMan to loop through the
  1. ; IHS Scheduling file (#44) to create and transmit GIS O01 HL7
  1. ; messages for the next days Retinal Imaging-JVN clinic appointments.
  1. ;
  1. ;
  1. D RES
  1. S BHLJBDT=$$NOW^XLFDT() ;ITSC/JCM 5/22/02
  1. S BHLJEDT=$$FMADD^XLFDT(BHLJBDT,1) ;ITSC/JCM 5/22/02
  1. ;
  1. D LOOP
  1. D VAR
  1. G EXIT
  1. Q
  1. LOOP ; Loops through File 44
  1. ; Finds all patients with scheduled appointments for JVN
  1. ;
  1. K ^TMP("BHLJVN")
  1. N BHLJCIEN,BHLJSCDT,BHLJSIEN,BHLJDFN,BHLJCNT
  1. S (BHLJSCDT,BHLJSIEN,BHLJDFN)="",(BHLJCIEN,BHLJCNT)=0
  1. F S BHLJCIEN=$O(^SC(BHLJCIEN)) Q:'BHLJCIEN D
  1. . I $P(^SC(BHLJCIEN,0),U)'["JVN" Q
  1. . S BHLJSCDT=""
  1. . F S BHLJSCDT=$O(^SC(BHLJCIEN,"S",BHLJSCDT),-1) Q:'BHLJSCDT!(BHLJSCDT<BHLJBDT) D ;ITSC/JCM 5/19/02
  1. .. Q:(BHLJSCDT<BHLJBDT)!(BHLJSCDT>BHLJEDT)
  1. .. S BHLJSIEN=0
  1. .. F S BHLJSIEN=$O(^SC(BHLJCIEN,"S",BHLJSCDT,1,BHLJSIEN)) Q:'BHLJSIEN D
  1. ... S BHLJDFN=$P($G(^SC(BHLJCIEN,"S",BHLJSCDT,1,BHLJSIEN,0)),U,1)
  1. ... S BHLJCNT=BHLJCNT+1
  1. ... S ^TMP("BHLJVN",$J,BHLJCNT)=BHLJDFN_U_BHLJCIEN_U_BHLJSCDT
  1. ;
  1. Q
  1. VAR ; Set up variables for JVN Interface O01 Message
  1. ;
  1. Q:'$D(^TMP("BHLJVN",$J))
  1. ;
  1. ; Variables:
  1. ; INDA = DFN
  1. ; INDA(44,1) = IEN of Clinic
  1. ; INDA(44,2) = Scheduled Date/Time of Appointment
  1. ;
  1. S BHLJCNT=0
  1. F S BHLJCNT=$O(^TMP("BHLJVN",$J,BHLJCNT)) Q:'BHLJCNT D
  1. . S INDA=$P($G(^TMP("BHLJVN",$J,BHLJCNT)),U,1)
  1. . S INDA(44,1)=$P($G(^TMP("BHLJVN",$J,BHLJCNT)),U,2)
  1. . S INDA(44,2)=$P($G(^TMP("BHLJVN",$J,BHLJCNT)),U,3)
  1. . D HL7
  1. ;
  1. Q
  1. ;
  1. HL7 ; Send O01 HL7 Messages to Cloverleaf for PACS Broker
  1. ;
  1. S X="BHL JVN SCHEDULED APPT INFO",DIC=101 D EN^XQOR
  1. Q
  1. FILL(BHLJDT) ; Filler Order (ORC-3)
  1. ; This function will return the Fill Order value
  1. ; based on the INDA(44,2) variable passed from GIS
  1. ;
  1. ; BHLJDT = INDA(44,2)
  1. ; Filler Order = Date_"-"_HRN
  1. ; (Date will not include time)
  1. ;
  1. I $G(BHLJDT)'="" D
  1. . S BHLJDT=$E($P($$FMTHL7^XLFDT(BHLJDT),"-"),1,8)
  1. E S BHLJDT=$E($P($$FMTHL7^XLFDT($$NOW^XLFDT()),"-"),1,8)
  1. ;S X=BHLJDT_"-"_$$LZERO^BHLPID($$HRN^AUPNPAT(INDA,DUZ(2)),6)
  1. S X=BHLJDT_"-"_$G(BHLRN) ;cmi/maw
  1. Q X
  1. EXIT ;
  1. K BHLJBDT,BHLJEDT,DIC,DIR,BHLJCNT,BHLJCIEN,BHLJSCDT,INDA,BHLJDFN,BHLJNAME,BHLJDOB,BHLJSSN,BHLJCNAM,BHLJCLIN,BHLJDT,BHLJBP,BHLJMSG
  1. Q
  1. ;
  1. RES ;-- check the interface and restart if necessary
  1. I '$D(ZTQUEUED) W !,"Checking Interfaces..."
  1. F BHLJBP="FORMAT CONTROLLER","OUTPUT CONTROLLER","HL IHS JVN PACS TRANSMITTER" D
  1. . S BHLJMSG=$$CHK^BHLBCK(BHLJBP,"")
  1. Q
  1. ;