PSOHLSN3 ;BIR/SJA - Send order info to OERR from file 52 ;10/05/06
 ;;7.0;OUTPATIENT PHARMACY;**225**;DEC 1997;Build 29
 ;
ORC ; Called from PSOHLSN1 due to it's routine size.
 S LIMIT=15 X NULLFLDS
 S FIELD(0)="ORC"
 S FIELD(1)=$G(STAT)
 I $G(STAT)'="SN",$G(STAT)'="ZC" S FIELD(2)=$P($G(^PSRX(PSRXIEN,"OR1")),"^",2)
 S:FIELD(2)'="" FIELD(2)=FIELD(2)_$S($G(PLACERXX):";"_PLACERXX,1:"")_"^OR"
 S FIELD(3)=PSRXIEN_"^PS"
 S FIELD(5)=$G(PSSTAT)
 I $G(STAT)="RO",$G(PSOROPCH)'="PATCH" S FIELD(5)="CM"
 I $G(FIELD(5))="" I $G(STAT)="OR"!($G(STAT)="OE") S FIELD(5)="CM"
 S X=$P($G(^PSRX(PSRXIEN,2)),"^") I X S FIELD(9)=$$FMTHL7^XLFDT(X)
 S EDUZ=$P($G(^PSRX(PSRXIEN,0)),"^",16) I EDUZ S FIELD(10)=EDUZ_"^"_$P($G(^VA(200,EDUZ,0)),"^")
 I $G(PSOCANRC),$G(PSOCANRN)'="" I $G(STAT)="OD"!($G(STAT)="OC") S FIELD(12)=$G(PSOCANRC)_"^"_$G(PSOCANRN)
 I '$G(FIELD(12)) S FIELD(12)=$P($G(^PSRX(PSRXIEN,0)),"^",4)_"^"_$P($G(^VA(200,+$P($G(^PSRX(PSRXIEN,0)),"^",4),0)),"^")
 S PSOHISSD="",X=$P($G(^PSRX(PSRXIEN,0)),"^",13) I X S PSOHISSD=$$FMTHL7^XLFDT(X)
 S FIELD(15)=$G(PSOHISSD) K X
 D SEG^PSOHLSN1
 I $G(COMM)'=""!($G(PSNOO)'="") D
 .I $G(PSNOO)'="" D NOO^PSOHLSN1
 .I $L($G(COMM))+($L(MSG(COUNT)))+($L($G(PSNOOTX)))+($S($G(PSNOO)'="":11,1:5))<245 S MSG(COUNT)=MSG(COUNT)_"|"_$G(PSNOO)_"^"_$G(PSNOOTX)_"^"_$S($G(PSNOO)'="":"99ORN",1:"")_"^^"_$G(COMM)_"^" Q
 .S MSG(COUNT,1)="|"_$G(PSNOO)_"^"_$G(PSNOOTX)_"^"_$S($G(PSNOO)'="":"99ORN",1:"")_"^^"_$G(COMM)_"^"
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSOHLSN3   1468     printed  Sep 23, 2025@20:06:38                                                                                                                                                                                                    Page 2
PSOHLSN3  ;BIR/SJA - Send order info to OERR from file 52 ;10/05/06
 +1       ;;7.0;OUTPATIENT PHARMACY;**225**;DEC 1997;Build 29
 +2       ;
ORC       ; Called from PSOHLSN1 due to it's routine size.
 +1        SET LIMIT=15
           XECUTE NULLFLDS
 +2        SET FIELD(0)="ORC"
 +3        SET FIELD(1)=$GET(STAT)
 +4        IF $GET(STAT)'="SN"
               IF $GET(STAT)'="ZC"
                   SET FIELD(2)=$PIECE($GET(^PSRX(PSRXIEN,"OR1")),"^",2)
 +5        if FIELD(2)'=""
               SET FIELD(2)=FIELD(2)_$SELECT($GET(PLACERXX):";"_PLACERXX,1:"")_"^OR"
 +6        SET FIELD(3)=PSRXIEN_"^PS"
 +7        SET FIELD(5)=$GET(PSSTAT)
 +8        IF $GET(STAT)="RO"
               IF $GET(PSOROPCH)'="PATCH"
                   SET FIELD(5)="CM"
 +9        IF $GET(FIELD(5))=""
               IF $GET(STAT)="OR"!($GET(STAT)="OE")
                   SET FIELD(5)="CM"
 +10       SET X=$PIECE($GET(^PSRX(PSRXIEN,2)),"^")
           IF X
               SET FIELD(9)=$$FMTHL7^XLFDT(X)
 +11       SET EDUZ=$PIECE($GET(^PSRX(PSRXIEN,0)),"^",16)
           IF EDUZ
               SET FIELD(10)=EDUZ_"^"_$PIECE($GET(^VA(200,EDUZ,0)),"^")
 +12       IF $GET(PSOCANRC)
               IF $GET(PSOCANRN)'=""
                   IF $GET(STAT)="OD"!($GET(STAT)="OC")
                       SET FIELD(12)=$GET(PSOCANRC)_"^"_$GET(PSOCANRN)
 +13       IF '$GET(FIELD(12))
               SET FIELD(12)=$PIECE($GET(^PSRX(PSRXIEN,0)),"^",4)_"^"_$PIECE($GET(^VA(200,+$PIECE($GET(^PSRX(PSRXIEN,0)),"^",4),0)),"^")
 +14       SET PSOHISSD=""
           SET X=$PIECE($GET(^PSRX(PSRXIEN,0)),"^",13)
           IF X
               SET PSOHISSD=$$FMTHL7^XLFDT(X)
 +15       SET FIELD(15)=$GET(PSOHISSD)
           KILL X
 +16       DO SEG^PSOHLSN1
 +17       IF $GET(COMM)'=""!($GET(PSNOO)'="")
               Begin DoDot:1
 +18               IF $GET(PSNOO)'=""
                       DO NOO^PSOHLSN1
 +19               IF $LENGTH($GET(COMM))+($LENGTH(MSG(COUNT)))+($LENGTH($GET(PSNOOTX)))+($SELECT($GET(PSNOO)'="":11,1:5))<245
                       SET MSG(COUNT)=MSG(COUNT)_"|"_$GET(PSNOO)_"^"_$GET(PSNOOTX)_"^"_$SELECT($GET(PSNOO)'="":"99ORN",1:"")_"^^"_$GET(COMM)_"^"
                       QUIT 
 +20               SET MSG(COUNT,1)="|"_$GET(PSNOO)_"^"_$GET(PSNOOTX)_"^"_$SELECT($GET(PSNOO)'="":"99ORN",1:"")_"^^"_$GET(COMM)_"^"
               End DoDot:1
 +21       QUIT