| 1 | ORWPFSS4 ;SLC-GDU CPRS HL7 PROCESSING FOR RAD PRE-CERT;[08/29/05]; | 
|---|
| 2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**228**;Dec 17, 1997 | 
|---|
| 3 | ;Determine if the order is to have an PFSS Account Reference | 
|---|
| 4 | ;associated with it. This is for orders that are not event delayed | 
|---|
| 5 | ; | 
|---|
| 6 | ;DBIA References for external calls | 
|---|
| 7 | ; $$GETS^DIQ         - DBIA 2056 | 
|---|
| 8 | ; $$GETS1^DIQ        - DBIA 2056 | 
|---|
| 9 | ; $$PKGTYP^ORWPFSS   - Internal to CPRS PFSS | 
|---|
| 10 | ; PFSSACTV^ORWPFSS   - Internal to CPRS PFSS | 
|---|
| 11 | ; $$ACCTREF^ORWPFSS1 - Internal to CPRS PFSS | 
|---|
| 12 | ; $$GETARN^SDPFSS2   - DBIA 4668 | 
|---|
| 13 | ; INP^VADPT          - DBIA 10061 | 
|---|
| 14 | ; ^VSIT              - DBIA 1900-A | 
|---|
| 15 | ; | 
|---|
| 16 | EN(ORIEN) ;Primary entry point of this routine | 
|---|
| 17 | ;Input Variable | 
|---|
| 18 | ; ORIEN    The Order Internal Entry Number | 
|---|
| 19 | ;Local Variables | 
|---|
| 20 | ; ORAR        Order Account Reference (PFSS AR) | 
|---|
| 21 | ; ORDFN       Order Patient's DFN (IEN) | 
|---|
| 22 | ; ORPFSS      Order PFSS Active Indicator | 
|---|
| 23 | ; ORUPDT      Order Update Indicator from record update | 
|---|
| 24 | ; ORVS        Order Visit String | 
|---|
| 25 | ; | 
|---|
| 26 | N ORAR,ORDFN,ORPFSS,ORUPDT,ORVS,X,Y | 
|---|
| 27 | S (ORAR,ORPFSS)="" | 
|---|
| 28 | ;If PFSS is inactive goto exit | 
|---|
| 29 | D PFSSACTV^ORWPFSS(.ORPFSS) I ORPFSS=0 G EXIT | 
|---|
| 30 | ;If Order already has PFSS Account Reference goto exit | 
|---|
| 31 | S ORAR=$$GET1^DIQ(100,ORIEN,97) I ORAR'="" G EXIT | 
|---|
| 32 | ;If Order package is not one of the currently supported goto exit | 
|---|
| 33 | I $$PKGTYP^ORWPFSS(ORIEN)=0 G EXIT | 
|---|
| 34 | ;If Visit String not found goto EXIT. | 
|---|
| 35 | S ORVS=$$GETVS(ORIEN) I ORVS="" G EXIT | 
|---|
| 36 | ;Get Patient's DFN from the Order | 
|---|
| 37 | S ORDFN=+$$GET1^DIQ(100,ORIEN,.02,"I") | 
|---|
| 38 | ;If Historical set PFSS Account Reference to null and goto Save | 
|---|
| 39 | I $P(ORVS,";",3)="E" S ORAR="" G SAVE | 
|---|
| 40 | ;If Scheduled Appointment get PFSS Account Reference and goto Save | 
|---|
| 41 | I $P(ORVS,";",3)="A" S ORAR=$$SAAR(ORVS,ORDFN) I ORAR'="" G SAVE | 
|---|
| 42 | ;If Hospital Admission get PFSS Account Reference and goto Save | 
|---|
| 43 | I $P(ORVS,";",3)="H" S ORAR=$$HAAR(ORDFN) I ORAR'="" G SAVE | 
|---|
| 44 | ;Check PCE for PFSS Account Reference | 
|---|
| 45 | S ORAR=$$PCEAR(ORVS,ORDFN) | 
|---|
| 46 | SAVE ;Save PFSS Account Reference or null value to the Order record | 
|---|
| 47 | S ORUPDT=$$ACCTREF^ORWPFSS1(ORIEN,ORAR) | 
|---|
| 48 | EXIT ;Exit point for this routine | 
|---|
| 49 | Q | 
|---|
| 50 | GETVS(X1) ;Get Order Visit String | 
|---|
| 51 | ;Get the data from the Order's Responses multi-valued field. | 
|---|
| 52 | ;Look for Prompt text of OR GTX VISITSTR | 
|---|
| 53 | ;If Prompt text found get the Visit String | 
|---|
| 54 | ;If Prompt text not found return a null value | 
|---|
| 55 | ;Input variable required, if missing this will return a null value | 
|---|
| 56 | ;Input Variable for this function | 
|---|
| 57 | ; X1    The Order IEN | 
|---|
| 58 | ;Return Variable for this function | 
|---|
| 59 | ; VS    The Order Visit String | 
|---|
| 60 | ;Local Variable for this function | 
|---|
| 61 | ; IENS  Index variable for REC array | 
|---|
| 62 | ; PT    Prompt Text being searched for | 
|---|
| 63 | ; REC   Output variable for GETS^DIQ that will contain the Order | 
|---|
| 64 | ;       Responses data. | 
|---|
| 65 | N IENS,PT,REC,VS | 
|---|
| 66 | I X1="" S VS="" Q VS | 
|---|
| 67 | S (IENS,VS)="" | 
|---|
| 68 | S PT=$P($T(VSPT),";",3) | 
|---|
| 69 | D GETS^DIQ(100,X1,"4.5*","E","REC") | 
|---|
| 70 | F  S IENS=$O(REC(100.045,IENS)) Q:IENS=""  D | 
|---|
| 71 | . I $G(REC(100.045,IENS,.02,"E"))=PT S VS=$G(REC(100.045,IENS,1,"E")) | 
|---|
| 72 | Q VS | 
|---|
| 73 | VSPT ;Visit String Prompt Text;OR GTX VISITSTR | 
|---|
| 74 | ; | 
|---|
| 75 | SAAR(X1,X2) ;Scheduled Appointment Account Reference for PFSS | 
|---|
| 76 | ;Get the PFSS Account Reference for scheduled appointments | 
|---|
| 77 | ;All inputs required, any missing this will return a null value | 
|---|
| 78 | ;Input Variables | 
|---|
| 79 | ; X1    The Visit String from the Order | 
|---|
| 80 | ; X2    The Patient's IEN | 
|---|
| 81 | ;Output Variable | 
|---|
| 82 | ; AR    PFSS Account Reference returned by $$GETARN^SDPFSS2 | 
|---|
| 83 | ;       Set to null in any input is missing | 
|---|
| 84 | ; | 
|---|
| 85 | N AR | 
|---|
| 86 | I X1=""!(X2="") S AR="" Q AR | 
|---|
| 87 | ;Get the PFSS Account Reference from Scheduling | 
|---|
| 88 | S AR=+$$GETARN^SDPFSS2($P(X1,";",2),X2,$P(X1,";")) | 
|---|
| 89 | I AR>0 Q AR      ;If found return Account Reference | 
|---|
| 90 | S AR="" Q AR     ;If not found return null for Account Reference | 
|---|
| 91 | ; | 
|---|
| 92 | HAAR(X1) ;Hospital Admission Account Reference for PFSS | 
|---|
| 93 | ;Returns the PFSS Account Reference for the Hospital Admission | 
|---|
| 94 | ;Input is required. If missing null value returned. | 
|---|
| 95 | ;Returns PFSS Account Reference returned if found. | 
|---|
| 96 | ;Returns null if PFSS Account Reference not found null. | 
|---|
| 97 | ;Input Variable for this function | 
|---|
| 98 | ; X1    The Patient's DFN | 
|---|
| 99 | ;Output Variables for this function | 
|---|
| 100 | ; ER    Set to null and returned if missing input | 
|---|
| 101 | ; VAIN("NR") The node of VAIN that contains the PFSS Account Reference | 
|---|
| 102 | ;Internal Variables for this function | 
|---|
| 103 | ; DFN   VADPT input variable, Patient's record number | 
|---|
| 104 | ; VAHOW VADPT input variable, sends output to array variable VAIN | 
|---|
| 105 | ; VAIN  Output array variable with results of INP^VAIN | 
|---|
| 106 | ; | 
|---|
| 107 | N ER,DFN,VAHOW,VAIN | 
|---|
| 108 | I X1="" S ER="" Q ER | 
|---|
| 109 | S DFN=X1 | 
|---|
| 110 | S VAHOW=1 | 
|---|
| 111 | D INP^VADPT | 
|---|
| 112 | Q $G(VAIN("NR")) | 
|---|
| 113 | ; | 
|---|
| 114 | PCEAR(X1,X2) ;PCE Account Reference for PFSS | 
|---|
| 115 | ;Returns the PFSS Account Reference from PCE | 
|---|
| 116 | ;All input required, if any missing this will a null. | 
|---|
| 117 | ;Returns PFSS Account Reference returned if found. | 
|---|
| 118 | ;Returns null if PFSS Account Reference not found null. | 
|---|
| 119 | ;Input Variable for this function | 
|---|
| 120 | ; X1    The Visit String from the Order | 
|---|
| 121 | ; X2    The Patient's IEN | 
|---|
| 122 | ; VSIT  The input and output array variable for ^VSIT | 
|---|
| 123 | ;Output Variables for this function | 
|---|
| 124 | ; ER    Set to null and returned if missing input | 
|---|
| 125 | ; VSIT("ACT") The node of array variable VSIT that contains | 
|---|
| 126 | ;       the PFSS Account Reference returned by ^VSIT | 
|---|
| 127 | ;Local Variable for this function | 
|---|
| 128 | ; VSIT  The input and output array variable for ^VSIT | 
|---|
| 129 | ; | 
|---|
| 130 | N ER,VSIT | 
|---|
| 131 | I X1=""!(X2="") S ER="" Q ER | 
|---|
| 132 | S VSIT(0)="D0EM" | 
|---|
| 133 | S VSIT("VDT")=$P(X1,";",2) | 
|---|
| 134 | S VSIT("LOC")=$P(X1,";") | 
|---|
| 135 | S VSIT("PKG")="OR" | 
|---|
| 136 | S VSIT("PAT")=X2 | 
|---|
| 137 | D ^VSIT | 
|---|
| 138 | I $G(VSIT("IEN"))<0 S ER="" Q ER | 
|---|
| 139 | Q $G(VSIT("ACT")) | 
|---|