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
|
---|