| 1 | PSBOPM1 ;BIRMINGHAM/BSR-BCMA OIT HISTORY API ;Oct 2005
 | 
|---|
| 2 |  ;;3.0;BAR CODE MED ADMIN;**17**;Mar 2004;Build 1
 | 
|---|
| 3 |  ;;Per VHA Directive 2004-038, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  ; Reference/IA
 | 
|---|
| 6 |  ; FILE 53.79
 | 
|---|
| 7 |  ; X-REF AOIP
 | 
|---|
| 8 |  ; X-REF AOIP3
 | 
|---|
| 9 |  ; X-REF AOIP4
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 | GETORD(PSBORDNM) ;
 | 
|---|
| 13 |  N XA,NDE
 | 
|---|
| 14 |  S PSBORD=0,XA=PSBORDNM,PSBDT="",NDE=.1
 | 
|---|
| 15 |  Q:PSBORDNM="" PSBORD
 | 
|---|
| 16 |  Q:'$D(^PSB(53.79,"AOIP",DFN,XA)) PSBORD
 | 
|---|
| 17 |  F  S PSBDT=$O(^PSB(53.79,"AOIP",DFN,XA,PSBDT)) Q:PSBDT=""  D
 | 
|---|
| 18 |  .S PSBIEN="" F  S PSBIEN=$O(^PSB(53.79,"AOIP",DFN,XA,PSBDT,PSBIEN)) Q:PSBIEN=""  D
 | 
|---|
| 19 |  ..Q:$P($G(^PSB(53.79,PSBIEN,0)),U,9)="N"
 | 
|---|
| 20 |  ..Q:'$D(^PSB(53.79,PSBIEN,NDE))
 | 
|---|
| 21 |  ..S PSBORD=$P(^PSB(53.79,PSBIEN,NDE),U)
 | 
|---|
| 22 |  ..I PSBORD S PSBORDNM=PSBORD
 | 
|---|
| 23 |  ..S:'PSBORD!(PSBORD="") PSBORD=0,TMP("PSBOIS",$J,XA)=""
 | 
|---|
| 24 |  Q PSBORD
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 | FINDIENS ; USE PSBOIS,PSBADDS AND PSBSOLS TO FIND ALL IENS FOR THE RPT
 | 
|---|
| 27 |  ;SEARCH FOR UNIT DOSE IENS
 | 
|---|
| 28 |  I $D(TMP("PSBOIS",$J)) S XA="" F  S XA=$O(TMP("PSBOIS",$J,XA)) Q:XA=""  D
 | 
|---|
| 29 |  .S PSBDT="" F  S PSBDT=$O(^PSB(53.79,"AOIP",DFN,XA,PSBDT)) Q:PSBDT=""  D
 | 
|---|
| 30 |  ..Q:PSBDT>PSBSTOP
 | 
|---|
| 31 |  ..Q:PSBDT<PSBSTRT
 | 
|---|
| 32 |  ..S PSBIEN="" F  S PSBIEN=$O(^PSB(53.79,"AOIP",DFN,XA,PSBDT,PSBIEN)) Q:PSBIEN=""  D
 | 
|---|
| 33 |  ...Q:$P(^PSB(53.79,PSBIEN,0),U,9)="N"
 | 
|---|
| 34 |  ...S TMP("PSBIENS",$J,"UD",$$GET1^DIQ(53.79,PSBIEN_",",.06,"I"),PSBIEN)=""
 | 
|---|
| 35 |  ;
 | 
|---|
| 36 |  ;SEARCH FOR ADDITIVES
 | 
|---|
| 37 |  I $D(TMP("PSBADDS",$J)) S XA="" F  S XA=$O(TMP("PSBADDS",$J,XA)) Q:XA=""  D
 | 
|---|
| 38 |  .S PSBIEN="" F  S PSBIEN=$O(^PSB(53.79,"AOIP3",DFN,PSBIEN)) Q:PSBIEN=""  D
 | 
|---|
| 39 |  ..S XB="" F  S XB=$O(^PSB(53.79,"AOIP3",DFN,PSBIEN,XB)) Q:XB=""  D
 | 
|---|
| 40 |  ...Q:XB'=XA
 | 
|---|
| 41 |  ...Q:$P(^PSB(53.79,PSBIEN,0),U,9)="N"
 | 
|---|
| 42 |  ...I $P(^PSB(53.79,PSBIEN,0),"^",6)>PSBSTRT,$P(^PSB(53.79,PSBIEN,0),"^",6)<PSBSTOP D
 | 
|---|
| 43 |  ....S TMP("PSBIENS",$J,"ADD",$$GET1^DIQ(53.79,PSBIEN_",",.06,"I"),PSBIEN)=""
 | 
|---|
| 44 |  ....S TMP("PSBADDS",$J,XA)=1
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 |  ;SEARCH FOR SOLUTIONS
 | 
|---|
| 47 |  I $D(TMP("PSBSOLS",$J)) S XA="" F  S XA=$O(TMP("PSBSOLS",$J,XA)) Q:XA=""  D
 | 
|---|
| 48 |  .S PSBIEN="" F  S PSBIEN=$O(^PSB(53.79,"AOIP4",DFN,PSBIEN)) Q:PSBIEN=""  D
 | 
|---|
| 49 |  ..S XB="" F  S XB=$O(^PSB(53.79,"AOIP4",DFN,PSBIEN,XB)) Q:XB=""  D
 | 
|---|
| 50 |  ...Q:XB'=XA
 | 
|---|
| 51 |  ...Q:$P(^PSB(53.79,PSBIEN,0),U,9)="N"
 | 
|---|
| 52 |  ...I $P(^PSB(53.79,PSBIEN,0),"^",6)>PSBSTRT,$P(^PSB(53.79,PSBIEN,0),"^",6)<PSBSTOP D
 | 
|---|
| 53 |  ....S TMP("PSBIENS",$J,"SOL",$$GET1^DIQ(53.79,PSBIEN_",",.06,"I"),PSBIEN)=""
 | 
|---|
| 54 |  ....S TMP("PSBSOLS",$J,XA)=1
 | 
|---|
| 55 |  Q
 | 
|---|
| 56 |  ;
 | 
|---|