| [613] | 1 | PSOHLINL ;BIR/RTR-Process HL7 segments greater than 245 ;07/12/02
 | 
|---|
 | 2 |  ;;7.0;OUTPATIENT PHARMACY;**111**;DEC 1997
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 | ORC ;Process multiple ORC segments
 | 
|---|
 | 5 |  S PSOHLTAG="ORCP"
 | 
|---|
 | 6 |  D PROC
 | 
|---|
 | 7 |  K PSOHLTAG
 | 
|---|
 | 8 |  Q
 | 
|---|
 | 9 | PROC ;Process segments
 | 
|---|
 | 10 |  N PSOHPVR,PSOHPVR1,PSOHNNCK,PSOHNNN,PSOHNNNN,PSOHIII,PSOHAA,PSOHLIM,PSOHBX
 | 
|---|
 | 11 |  D RESET
 | 
|---|
 | 12 |  I $G(PSOHLTAG)="ORCP" S PSOHY("PRIOR")="R" D NOW^%DTC S PSOHY("EDT")=%
 | 
|---|
 | 13 |  S (PSOHPVR,PSOHPVR1)="",(PSOHNNCK,PSOHNNN,PSOHNNNN)=0,PSOHIII=1
 | 
|---|
 | 14 |  S PSOHAA="" F  S PSOHAA=$O(PSOHBX(PSOHAA)) Q:PSOHAA=""  S PSOHNNN=0 F PSOHOO=1:1:$L(PSOHBX(PSOHAA)) S PSOHNNN=PSOHNNN+1 D  D:$G(PSOHPVR1)=HL("FS") @PSOHLTAG
 | 
|---|
 | 15 |  .I $E(PSOHBX(PSOHAA),PSOHOO)=HL("FS") S PSOHNNNN=PSOHNNNN+1
 | 
|---|
 | 16 |  .S PSOHPVR1=$E(PSOHBX(PSOHAA),PSOHOO)
 | 
|---|
 | 17 |  .S PSOHLIM=PSOHPVR
 | 
|---|
 | 18 |  .S PSOHPVR=$S(PSOHPVR="":PSOHPVR1,1:PSOHPVR_PSOHPVR1)
 | 
|---|
 | 19 |  I $G(PSOHPVR)'="" S PSOHLIM=PSOHPVR S PSOHNNNN=PSOHNNNN+1 D @PSOHLTAG
 | 
|---|
 | 20 |  Q
 | 
|---|
 | 21 | ORCP ;
 | 
|---|
 | 22 |  S PSOHLMIS("ORC")=""
 | 
|---|
 | 23 |  I PSOHNNNN=1 S PSOHY("OCC")=$G(PSOHLIM) G ORCPQ
 | 
|---|
 | 24 |  I PSOHNNNN=2 S PSOHY("CHNUM")=$P(PSOHLIM,PSOHFSP) G ORCPQ
 | 
|---|
 | 25 |  I PSOHNNNN=9 S X=$G(PSOHLIM) D  G ORCPQ
 | 
|---|
 | 26 |  .I X S PSOHY("SDT")=$$HL7TFM^XLFDT(X) Q
 | 
|---|
 | 27 |  .S PSOHY("SDT")=$G(PSOHY("EDT"))
 | 
|---|
 | 28 |  I PSOHNNNN=10 S PSOHY("ENTER")=+$G(PSOHLIM)
 | 
|---|
 | 29 |  I PSOHNNNN=12 S PSOHY("PROV")=+$G(PSOHLIM)
 | 
|---|
 | 30 | ORCPQ S (PSOHPVR,PSOHLIM)=""
 | 
|---|
 | 31 |  Q
 | 
|---|
 | 32 | RXOP ;
 | 
|---|
 | 33 |  S PSOHLMIS("RXO")=""
 | 
|---|
 | 34 |  I PSOHNNNN=10 S PSOHY("DRUG")=+$G(PSOHLIM) G RXOPQ
 | 
|---|
 | 35 |  I PSOHNNNN=11 S PSOHY("QTY")=$G(PSOHLIM) G RXOPQ
 | 
|---|
 | 36 |  I PSOHNNNN=13 S PSOHY("REF")=$G(PSOHLIM)
 | 
|---|
 | 37 | RXOPQ S (PSOHPVR,PSOHLIM)=""
 | 
|---|
 | 38 |  Q
 | 
|---|
 | 39 | RESET ;reset array
 | 
|---|
 | 40 |  K PSOHBX
 | 
|---|
 | 41 |  S PSOHX="" F  S PSOHX=$O(PSOHB(PSOHX)) Q:PSOHX=""  S PSOHBX((+$G(PSOHX)+1))=PSOHB(PSOHX)
 | 
|---|
 | 42 |  S PSOHBX(0)=PSOHB
 | 
|---|
 | 43 |  Q
 | 
|---|
 | 44 | RXO ;Process multiple RXO segments
 | 
|---|
 | 45 |  S PSOHLTAG="RXOP"
 | 
|---|
 | 46 |  D PROC
 | 
|---|
 | 47 |  K PSOHLTAG
 | 
|---|
 | 48 |  Q
 | 
|---|
 | 49 | COMM ;Process multiple NTE 6 (Provider comments)
 | 
|---|
 | 50 |  K ^UTILITY($J,"W")
 | 
|---|
 | 51 |  S X=$P(PSOHB,HL("FS"),3,999),DIWL=1,DIWR=70,DIWF="" D LTH Q:PSOXLONG  D ^DIWP
 | 
|---|
 | 52 |  S PSOHLZ="" F  S PSOHLZ=$O(PSOHB("")) Q:PSOHLZ=""!(PSOXLONG)  I $G(PSOHB(PSOHLZ))'="" S X=PSOHB(PSOHLZ),DIWL=1,DIWR=70,DIWF="" D LTH Q:PSOXLONG  D ^DIWP
 | 
|---|
 | 53 |  I PSOXLONG K ^UTILITY($J,"W") Q
 | 
|---|
 | 54 |  D ENCOMM
 | 
|---|
 | 55 |  K ^UTILITY($J,"W")
 | 
|---|
 | 56 |  Q
 | 
|---|
 | 57 | SIG ;Process multiple NTE 7 (Sig)
 | 
|---|
 | 58 |  K ^UTILITY($J,"W")
 | 
|---|
 | 59 |  S X=$P(PSOHB,HL("FS"),3,999),DIWL=1,DIWR=70,DIWF="" D LTH Q:PSOXLONG  D ^DIWP
 | 
|---|
 | 60 |  S PSOHLZ="" F  S PSOHLZ=$O(PSOHB("")) Q:PSOHLZ=""!(PSOXLONG)  I $G(PSOHB(PSOHLZ))'="" S X=PSOHB(PSOHLZ),DIWL=1,DIWR=70,DIWF="" D LTH Q:PSOXLONG  D ^DIWP
 | 
|---|
 | 61 |  I PSOXLONG K ^UTILITY($J,"W") Q
 | 
|---|
 | 62 |  D ENSIG
 | 
|---|
 | 63 |  K ^UTILITY($J,"W")
 | 
|---|
 | 64 |  Q
 | 
|---|
 | 65 | ENCOMM ;Enter provider comments into PSOHY array
 | 
|---|
 | 66 |  S PSOHLZC=1
 | 
|---|
 | 67 |  S PSOHLZ="" F  S PSOHLZ=$O(^UTILITY($J,"W",1,PSOHLZ)) Q:PSOHLZ=""  I $G(^(PSOHLZ,0))'="" D
 | 
|---|
 | 68 |  .S PSOHY("PRCOM",PSOHLZC)=$G(^UTILITY($J,"W",1,PSOHLZ,0)),PSOHLZC=PSOHLZC+1
 | 
|---|
 | 69 |  Q
 | 
|---|
 | 70 | ENSIG ;Enter Sig into PSOHY array
 | 
|---|
 | 71 |  S PSOHLZC=1
 | 
|---|
 | 72 |  S PSOHLZ="" F  S PSOHLZ=$O(^UTILITY($J,"W",1,PSOHLZ)) Q:PSOHLZ=""  I $G(^(PSOHLZ,0))'="" D
 | 
|---|
 | 73 |  .S PSOHY("SIG",PSOHLZC)=$G(^UTILITY($J,"W",1,PSOHLZ,0)),PSOHLZC=PSOHLZC+1
 | 
|---|
 | 74 |  Q
 | 
|---|
 | 75 | LTH ;
 | 
|---|
 | 76 |  I $L(X)>245 S PSOXLONG=1
 | 
|---|
 | 77 |  Q
 | 
|---|