| 1 | PSUCS4 ;BIR/DJE - PBM CS GENERATE RECORDS ;13 OCT 1999
 | 
|---|
| 2 |  ;;4.0;PHARMACY BENEFITS MANAGEMENT;;MARCH, 2005
 | 
|---|
| 3 |  ; 
 | 
|---|
| 4 |  ; **
 | 
|---|
| 5 |  ; General Calls from type 2 & 17
 | 
|---|
| 6 |  ; **
 | 
|---|
| 7 |  ;DBIAs
 | 
|---|
| 8 |  ; Reference to file #50    supported by DBIA 221
 | 
|---|
| 9 |  ; Reference to file #58.8  supported by DBIA 2519
 | 
|---|
| 10 |  ; Reference to file #58.81 supported by DBIA 2520
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 | GNAME ;3.2.5.11. Functional Requirement 11
 | 
|---|
| 13 |  ;Field   # 58.81,4 [DRUG] Points to File # 50
 | 
|---|
| 14 |  S PSUDRG(4)=$$VALI^PSUTL(58.81,PSUIENDA,"4")
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 |  ;Generic Drug Name 
 | 
|---|
| 17 |  ;Field   # 50,.01 [GENERIC NAME]**Field to be extracted
 | 
|---|
| 18 |  S PSUGDN(.01)=$$VALI^PSUTL(50,PSUDRG(4),".01")
 | 
|---|
| 19 |  I $G(PSUGDN(.01))="" S PSUGDN(.01)="Unknown Generic Name"
 | 
|---|
| 20 |  Q 
 | 
|---|
| 21 |  ;  
 | 
|---|
| 22 | LOCTYP ;3.2.5.7.   Functional Requirement 7
 | 
|---|
| 23 |  ;Transactions with a dispensing type (field # 58.81,1) of '2' 
 | 
|---|
| 24 |  ; - Dispensed from Pharmacy must be associated with a location type 
 | 
|---|
| 25 |  ;(field # 58.8,1) of 'M' for Master or 'S' for Satellite.
 | 
|---|
| 26 |  ;Transactions with a dispensing type (field # 58.81,1) of '17' 
 | 
|---|
| 27 |  ;- Logged for Patient must  be associated with a location type 
 | 
|---|
| 28 |  ;(field # 58.8,1) of 'N' for narcotic location.
 | 
|---|
| 29 |  ;S PSULTP(1)=$$VALI^PSUTL(58.81,PSUIENDA,"1")
 | 
|---|
| 30 |  ;D MOVEI^PSUTL("PSULTP")
 | 
|---|
| 31 |  S PSULTP(1)=$$VALI^PSUTL(58.8,PSULOC,1)
 | 
|---|
| 32 |  Q:PSUTYP=17
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 |  ;3.2.5.8.   Functional Requirement 8
 | 
|---|
| 35 |  ;Transactions with a dispensing type '2'-dispensed from pharmacy 
 | 
|---|
| 36 |  ;(field # 58.81,1) and a Location type of 'M' for 'S' (field # 58.8,1)
 | 
|---|
| 37 |  ;
 | 
|---|
| 38 |  ; Continue Processing Flag (CPFLG)
 | 
|---|
| 39 |  S CPFLG="Y"
 | 
|---|
| 40 |  ; but that have been cancelled (field # 58.81,55) will be excluded.
 | 
|---|
| 41 |  ; (ie.If there is a 'cancel verified order date' - PSUCDT)
 | 
|---|
| 42 |  S PSUCDT(55)=$$VALI^PSUTL(58.81,PSUIENDA,"55")
 | 
|---|
| 43 |  Q:$G(PSUCDT(55))=""
 | 
|---|
| 44 |  S CPFLG="N"
 | 
|---|
| 45 |  Q 
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 |  ;3.2.5.9.   Functional Requirement 9
 | 
|---|
| 48 |  ;Dispensing transactions that meet the criteria in functional 
 | 
|---|
| 49 |  ;requirements 3.2.5.3., 3.2.5.7. and 3.2.5.8. will have the following 
 | 
|---|
| 50 |  ;additional data elements for the  drug extracted.
 | 
|---|
| 51 |  ;
 | 
|---|
| 52 | NDC ;NDC
 | 
|---|
| 53 |  ;Field # 50,31 [NDC]**Field to be extracted
 | 
|---|
| 54 |  ;If no data found, send "No NDC".
 | 
|---|
| 55 |  S PSUNDC(31)=$$VALI^PSUTL(50,PSUDRG(4),"31")
 | 
|---|
| 56 |  I $G(PSUNDC(31))="" S PSUNDC(31)="No NDC"
 | 
|---|
| 57 |  Q 
 | 
|---|
| 58 |  ; 
 | 
|---|
| 59 |  ;
 | 
|---|
| 60 | FORMIND ;Formulary/Non-Formulary Indicator
 | 
|---|
| 61 |  ;Field # 50,51 [NON-FORMULARY]**Field to be extracted
 | 
|---|
| 62 |  S PSUFID(51)=$$VALI^PSUTL(50,PSUDRG(4),"51")
 | 
|---|
| 63 |  Q
 | 
|---|
| 64 |  ;
 | 
|---|
| 65 | NFIND ;National Formulary Indicator
 | 
|---|
| 66 |  ;Product will need to check whether or not Vs 4.0 of 
 | 
|---|
| 67 |  ;National Drug File is installed. If not, this field will not exist.
 | 
|---|
| 68 |  ;Check for National Drug File
 | 
|---|
| 69 |  S (NFIND,NFRES)=""
 | 
|---|
| 70 |  S VERSION=$$VERSION^XPDUTL("PSN")
 | 
|---|
| 71 |  Q:VERSION<4.0
 | 
|---|
| 72 |  ;Field # 50.68,17 [NATIONAL FORMULARY INDICATOR]***Field to be extracted
 | 
|---|
| 73 |  ;If  National Drug File vs 4.0 is not installed
 | 
|---|
| 74 |  ;Transmission format: Send null
 | 
|---|
| 75 |  ;If National Drug File vs 4.0 is installed
 | 
|---|
| 76 |  S PSUDRG4=PSUDRG(4)
 | 
|---|
| 77 |  D GETS^PSUTL(50,PSUDRG4,"20;22;3;52","PSUDRG","I")
 | 
|---|
| 78 |  D MOVEI^PSUTL("PSUDRG")
 | 
|---|
| 79 |  S PSUDRG(4)=PSUDRG4
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 |  S PSUNFI(17)=$$FORMI^PSNAPIS(PSUDRG(20),PSUDRG(22))
 | 
|---|
| 82 |  ;Transmission format: Internal value ('1' for Yes, '0' for  No)
 | 
|---|
| 83 |  ;National Formulary Restriction Indicator
 | 
|---|
| 84 |  ;Product shall check whether or not Vs 4.0 of National Drug File 
 | 
|---|
| 85 |  ;is installed. If not, this field will not exist.
 | 
|---|
| 86 |  ;Field #50.6818,.01[NATIONAL FORMULARY RESTRICTION]Field to be extracted
 | 
|---|
| 87 |  ;
 | 
|---|
| 88 |  S PSUNFR(.01)=$$FORMR^PSNAPIS(PSUDRG(20),PSUDRG(22))>0
 | 
|---|
| 89 |  S PSUNFR(.01)=$S($G(PSUNFR(.01))="":0,1:PSUNFR(.01))
 | 
|---|
| 90 |  ;
 | 
|---|
| 91 |  ;If  National Drug File vs 4.0 is not installed
 | 
|---|
| 92 |  ;Transmission format: Send null
 | 
|---|
| 93 |  ;If National Drug File vs 4.0 is installed 
 | 
|---|
| 94 |  ;Transmission format:  If no value is found send '0', 
 | 
|---|
| 95 |  ;if data exists sent '1'
 | 
|---|
| 96 |  Q
 | 
|---|
| 97 |  ;   
 | 
|---|
| 98 | VPNAME ;VA Product Name
 | 
|---|
| 99 |  ;Field # 50,21[VA PRODUCT NAME]**Field to be extracted
 | 
|---|
| 100 |  S PSUVPN(21)=$$VALI^PSUTL(50,PSUDRG(4),"21")
 | 
|---|
| 101 |  S PSUDRG4=PSUDRG(4) ;if no value found, send "Unknown VA Product Name"
 | 
|---|
| 102 |  I $G(PSUVPN(21))="" S PSUVPN(21)="Unknown VA Product Name"
 | 
|---|
| 103 |  D GETS^PSUTL(50,PSUDRG(4),"3;52","PSUDRG","I"),MOVEI^PSUTL("PSUDRG")
 | 
|---|
| 104 |  S PSUDRG(4)=PSUDRG4 ;DEA, NFI
 | 
|---|
| 105 |  Q 
 | 
|---|
| 106 |  ;
 | 
|---|
| 107 | VDC ; VA Drug Class
 | 
|---|
| 108 |  ;Field   # 50,2 [NATIONAL DRUG CLASS] Pointer to File # 50.605
 | 
|---|
| 109 |  ;used DRUG pointer from previous quantity check.
 | 
|---|
| 110 |  S PSUNAC(2)=$$VALI^PSUTL(50,PSUDRG(4),"2")
 | 
|---|
| 111 |  ;
 | 
|---|
| 112 |  ;Field   # 50.605,.01 [CODE]**Field to be extracted
 | 
|---|
| 113 |  S PSUFID(.01)=PSUNAC(2)
 | 
|---|
| 114 |  Q
 | 
|---|
| 115 |  ;Field   # 58.8001,.01 [DRUG] Pointer to File # 50
 | 
|---|
| 116 |  ;
 | 
|---|
| 117 | PDT ;Package details
 | 
|---|
| 118 |  ;Field   # 58.8001,7 [BREAKDOWN UNIT]**Field to be extracted
 | 
|---|
| 119 |  ;Field   # 58.8001,8 [PACKAGE SIZE]**Field to be extracted
 | 
|---|
| 120 |  S PSUSITE=0
 | 
|---|
| 121 |  S PSUSITE=$$VALI^PSUTL(58.8,PSUIENDA,20)
 | 
|---|
| 122 |  S:'PSUSITE PSUSITE=$$VALI^PSUTL(58.81,PSUIENDA,2)
 | 
|---|
| 123 |  D GETS^PSUTL(58.8001,"PSUSITE,PSUDRG(4)","7;8","PSUPDT","I")
 | 
|---|
| 124 |  D MOVEI^PSUTL("PSUPDT")
 | 
|---|
| 125 |  S UNIT=$G(PSUPDT(7),"NA")
 | 
|---|
| 126 |  Q
 | 
|---|