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

ORWPFSS4.m

Go to the documentation of this file.
ORWPFSS4 ;SLC-GDU CPRS HL7 PROCESSING FOR RAD PRE-CERT;[08/29/05];
 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**228**;Dec 17, 1997
 ;Determine if the order is to have an PFSS Account Reference
 ;associated with it. This is for orders that are not event delayed
 ;
 ;DBIA References for external calls
 ; $$GETS^DIQ         - DBIA 2056 
 ; $$GETS1^DIQ        - DBIA 2056
 ; $$PKGTYP^ORWPFSS   - Internal to CPRS PFSS
 ; PFSSACTV^ORWPFSS   - Internal to CPRS PFSS
 ; $$ACCTREF^ORWPFSS1 - Internal to CPRS PFSS
 ; $$GETARN^SDPFSS2   - DBIA 4668
 ; INP^VADPT          - DBIA 10061
 ; ^VSIT              - DBIA 1900-A
 ;
EN(ORIEN) ;Primary entry point of this routine
 ;Input Variable
 ; ORIEN    The Order Internal Entry Number
 ;Local Variables
 ; ORAR        Order Account Reference (PFSS AR)
 ; ORDFN       Order Patient's DFN (IEN)
 ; ORPFSS      Order PFSS Active Indicator
 ; ORUPDT      Order Update Indicator from record update
 ; ORVS        Order Visit String
 ;
 N ORAR,ORDFN,ORPFSS,ORUPDT,ORVS,X,Y
 S (ORAR,ORPFSS)=""
 ;If PFSS is inactive goto exit
 D PFSSACTV^ORWPFSS(.ORPFSS) I ORPFSS=0 G EXIT
 ;If Order already has PFSS Account Reference goto exit
 S ORAR=$$GET1^DIQ(100,ORIEN,97) I ORAR'="" G EXIT
 ;If Order package is not one of the currently supported goto exit
 I $$PKGTYP^ORWPFSS(ORIEN)=0 G EXIT
 ;If Visit String not found goto EXIT.
 S ORVS=$$GETVS(ORIEN) I ORVS="" G EXIT
 ;Get Patient's DFN from the Order
 S ORDFN=+$$GET1^DIQ(100,ORIEN,.02,"I")
 ;If Historical set PFSS Account Reference to null and goto Save
 I $P(ORVS,";",3)="E" S ORAR="" G SAVE
 ;If Scheduled Appointment get PFSS Account Reference and goto Save
 I $P(ORVS,";",3)="A" S ORAR=$$SAAR(ORVS,ORDFN) I ORAR'="" G SAVE
 ;If Hospital Admission get PFSS Account Reference and goto Save
 I $P(ORVS,";",3)="H" S ORAR=$$HAAR(ORDFN) I ORAR'="" G SAVE
 ;Check PCE for PFSS Account Reference
 S ORAR=$$PCEAR(ORVS,ORDFN)
SAVE ;Save PFSS Account Reference or null value to the Order record
 S ORUPDT=$$ACCTREF^ORWPFSS1(ORIEN,ORAR)
EXIT ;Exit point for this routine
 Q
GETVS(X1) ;Get Order Visit String
 ;Get the data from the Order's Responses multi-valued field.
 ;Look for Prompt text of OR GTX VISITSTR
 ;If Prompt text found get the Visit String
 ;If Prompt text not found return a null value
 ;Input variable required, if missing this will return a null value
 ;Input Variable for this function
 ; X1    The Order IEN
 ;Return Variable for this function
 ; VS    The Order Visit String
 ;Local Variable for this function
 ; IENS  Index variable for REC array
 ; PT    Prompt Text being searched for
 ; REC   Output variable for GETS^DIQ that will contain the Order
 ;       Responses data.
 N IENS,PT,REC,VS
 I X1="" S VS="" Q VS
 S (IENS,VS)=""
 S PT=$P($T(VSPT),";",3)
 D GETS^DIQ(100,X1,"4.5*","E","REC")
 F  S IENS=$O(REC(100.045,IENS)) Q:IENS=""  D
 . I $G(REC(100.045,IENS,.02,"E"))=PT S VS=$G(REC(100.045,IENS,1,"E"))
 Q VS
VSPT ;Visit String Prompt Text;OR GTX VISITSTR
 ;
SAAR(X1,X2) ;Scheduled Appointment Account Reference for PFSS
 ;Get the PFSS Account Reference for scheduled appointments
 ;All inputs required, any missing this will return a null value
 ;Input Variables
 ; X1    The Visit String from the Order 
 ; X2    The Patient's IEN
 ;Output Variable
 ; AR    PFSS Account Reference returned by $$GETARN^SDPFSS2
 ;       Set to null in any input is missing
 ;
 N AR
 I X1=""!(X2="") S AR="" Q AR
 ;Get the PFSS Account Reference from Scheduling
 S AR=+$$GETARN^SDPFSS2($P(X1,";",2),X2,$P(X1,";"))
 I AR>0 Q AR      ;If found return Account Reference
 S AR="" Q AR     ;If not found return null for Account Reference
 ;
HAAR(X1) ;Hospital Admission Account Reference for PFSS
 ;Returns the PFSS Account Reference for the Hospital Admission
 ;Input is required. If missing null value returned.
 ;Returns PFSS Account Reference returned if found.
 ;Returns null if PFSS Account Reference not found null.
 ;Input Variable for this function
 ; X1    The Patient's DFN
 ;Output Variables for this function
 ; ER    Set to null and returned if missing input
 ; VAIN("NR") The node of VAIN that contains the PFSS Account Reference
 ;Internal Variables for this function
 ; DFN   VADPT input variable, Patient's record number
 ; VAHOW VADPT input variable, sends output to array variable VAIN
 ; VAIN  Output array variable with results of INP^VAIN
 ;
 N ER,DFN,VAHOW,VAIN
 I X1="" S ER="" Q ER
 S DFN=X1
 S VAHOW=1
 D INP^VADPT
 Q $G(VAIN("NR"))
 ;
PCEAR(X1,X2) ;PCE Account Reference for PFSS
 ;Returns the PFSS Account Reference from PCE
 ;All input required, if any missing this will a null.
 ;Returns PFSS Account Reference returned if found.
 ;Returns null if PFSS Account Reference not found null.
 ;Input Variable for this function
 ; X1    The Visit String from the Order
 ; X2    The Patient's IEN
 ; VSIT  The input and output array variable for ^VSIT
 ;Output Variables for this function
 ; ER    Set to null and returned if missing input
 ; VSIT("ACT") The node of array variable VSIT that contains
 ;       the PFSS Account Reference returned by ^VSIT
 ;Local Variable for this function
 ; VSIT  The input and output array variable for ^VSIT
 ;
 N ER,VSIT
 I X1=""!(X2="") S ER="" Q ER
 S VSIT(0)="D0EM"
 S VSIT("VDT")=$P(X1,";",2)
 S VSIT("LOC")=$P(X1,";")
 S VSIT("PKG")="OR"
 S VSIT("PAT")=X2
 D ^VSIT
 I $G(VSIT("IEN"))<0 S ER="" Q ER
 Q $G(VSIT("ACT"))