| 1 | OOPSDOLX ;WIOFO/CAH-Extract data for DOL XMIT ;3/15/00
 | 
|---|
| 2 |  ;;2.0;ASISTS;**8,11**;Jun 03, 2002
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; Note:  have changed this routine to strip the spaces out of the 
 | 
|---|
| 5 |  ;        last name.  This is for ASISTS GUI but needs to be implemented
 | 
|---|
| 6 |  ;        for roll and scroll also.
 | 
|---|
| 7 |  ;
 | 
|---|
| 8 |  ;Retrieves data from ^OOPS(2260, for CA1/CA2
 | 
|---|
| 9 |  ;Variables used
 | 
|---|
| 10 |  ;  OOPDA-----IEN of Case
 | 
|---|
| 11 |  ;  OOPSAR----Array holding data
 | 
|---|
| 12 |  ;  OPL-------Last line number written in message text
 | 
|---|
| 13 |  ;  XMZ-------Message Number
 | 
|---|
| 14 |  ; Entry
 | 
|---|
| 15 |  N ARR,KK,FN,FORM,MESS,NAME,OPC,OPSAR,OPT,OPX,SEG,OOPSAR,FYM,MON
 | 
|---|
| 16 |  S RSIZE=0,ARR=0
 | 
|---|
| 17 |  S OOPSAR(0)=$$UP^OOPSUTL4($G(^OOPS(2260,OOPDA,0)))
 | 
|---|
| 18 |  S OOPSAR("2162A")=$$UP^OOPSUTL4($G(^OOPS(2260,OOPDA,"2162A")))
 | 
|---|
| 19 |  S OOPSAR("2162B")=$$UP^OOPSUTL4($G(^OOPS(2260,OOPDA,"2162B")))
 | 
|---|
| 20 |  S OOPSAR("2162D")=$$UP^OOPSUTL4($G(^OOPS(2260,OOPDA,"2162D")))
 | 
|---|
| 21 |  S OOPSAR("2162ES")=$$UP^OOPSUTL4($G(^OOPS(2260,OOPDA,"2162ES")))
 | 
|---|
| 22 | OP02 ; Seg OP01
 | 
|---|
| 23 |  K OPX,DTINJ
 | 
|---|
| 24 |  S OPX="OP01^"_$TR($P(OOPSAR(0),U),"-")_U_$P(OOPSAR(0),U,2)
 | 
|---|
| 25 |  S OPX=OPX_U_$P(OOPSAR(0),U,7)_U_$TR($P(OOPSAR("2162A"),U),"-")
 | 
|---|
| 26 |  ; patch 11 - send field 109 if CA1, field 214 if CA2
 | 
|---|
| 27 |  ;            left old code, commented below
 | 
|---|
| 28 |  S FORM=$$GET1^DIQ(2260,OOPDA,52,"I")
 | 
|---|
| 29 |  I FORM=1 D
 | 
|---|
| 30 |  . S DTINJ=$$GET1^DIQ(2260,OOPDA,109,"I")
 | 
|---|
| 31 |  . S OPX=OPX_U_$$DC^OOPSUTL3($P(DTINJ,"."))
 | 
|---|
| 32 |  . S Y=DTINJ D DD^%DT S Y=$P($TR(Y,":",""),"@",2),OPX=OPX_U_Y
 | 
|---|
| 33 |  I FORM=2 D
 | 
|---|
| 34 |  . S DTINJ=$$GET1^DIQ(2260,OOPDA,214,"I")
 | 
|---|
| 35 |  . S OPX=OPX_U_$$DC^OOPSUTL3($P(DTINJ,"."))_U
 | 
|---|
| 36 |  K DTINJ
 | 
|---|
| 37 |  ;
 | 
|---|
| 38 |  ; S OPX=OPX_U_$$DC^OOPSUTL3($P($P(OOPSAR(0),U,5),"."))
 | 
|---|
| 39 |  ; I $$GET1^DIQ(2260,OOPDA,52,"I")=1 D
 | 
|---|
| 40 |  ; .S Y=$P(OOPSAR(0),U,5) D DD^%DT S Y=$P($TR(Y,":",""),"@",2)
 | 
|---|
| 41 |  ; .S OPX=OPX_U_Y
 | 
|---|
| 42 |  ; I $$GET1^DIQ(2260,OOPDA,52,"I")=2 S OPX=OPX_U
 | 
|---|
| 43 |  S MON=$E($P(OOPSAR(0),U,5),4,5)
 | 
|---|
| 44 |  S FYM=$S(MON=10:1,MON=11:2,MON=12:3,MON="01":4,MON="02":5,MON="03":6,MON="04":7,MON="05":8,MON="06":9,MON="07":10,MON="08":11,MON="09":12,1:0)
 | 
|---|
| 45 |  S OPX=OPX_U_$E($P(OOPSAR(0),U),1,4)_U_$E("00",$L(FYM)+1,2)_FYM
 | 
|---|
| 46 |  S NAME=$P(OOPSAR(0),U,2),FN=$P(NAME,",",2)
 | 
|---|
| 47 |  F KK=1:0:1 Q:$E(FN,KK)'=" "  S FN=$E(FN,KK+1,$L(FN))
 | 
|---|
| 48 |  ; added $TR below to strip spaces out of name
 | 
|---|
| 49 |  S OPX=OPX_U_$P($TR(NAME," ",""),",")_U_$P(FN," ")_U_$E($P(FN," ",2))
 | 
|---|
| 50 |  S OPX=OPX_"^^"_$P(OOPSAR("2162A"),U,4)_U_$P(OOPSAR("2162A"),U,5)_U_$$GET1^DIQ(2260,OOPDA,"10:1")_U_$E($P(OOPSAR("2162A"),U,7),1,5)
 | 
|---|
| 51 |  S OPX=OPX_U_$TR($P(OOPSAR("2162A"),U,8),"(,)-^*/# ")
 | 
|---|
| 52 |  S OPX=OPX_U_$E($$GET1^DIQ(2260,OOPDA,7,"E"))_U_$$DC^OOPSUTL3($P(OOPSAR("2162A"),U,2))
 | 
|---|
| 53 |  ; Patch 5 llh - changed next line from "70:.01" to 331
 | 
|---|
| 54 |  S OPX=OPX_U_$$GET1^DIQ(2260,OOPDA,331)
 | 
|---|
| 55 |  S OPX=OPX_"^^"_$P(OOPSAR("2162A"),U,10)_"^|"
 | 
|---|
| 56 |  D STORE
 | 
|---|
| 57 |  I $P(OOPSAR(0),U,7)=1 D ^OOPSDOL1
 | 
|---|
| 58 |  I $P(OOPSAR(0),U,7)=2 D ^OOPSDOL2
 | 
|---|
| 59 | EXIT ; Loads the message and Quits the routine
 | 
|---|
| 60 |  I RSIZE+MSIZE>30000 D
 | 
|---|
| 61 |  .S END=$P($P(^OOPS(2260,OPAST,0),U),"-",2)
 | 
|---|
| 62 |  .D SEND^OOPSDOL,CREATE^OOPSDOL
 | 
|---|
| 63 |  .S (START,END)=""
 | 
|---|
| 64 |  F I=1:1:ARR I $G(MESS(I))'="" D
 | 
|---|
| 65 |  .S OPL=OPL+1,^XMB(3.9,XMZ,2,OPL,0)=MESS(I)
 | 
|---|
| 66 |  .I START="" S START=$P($P(OOPSAR(0),U),"-",2)
 | 
|---|
| 67 |  S MSIZE=MSIZE+RSIZE
 | 
|---|
| 68 |  K ARR,MESS,OPDT,RSIZE
 | 
|---|
| 69 |  Q
 | 
|---|
| 70 | STORE ;
 | 
|---|
| 71 |  S ARR=ARR+1,MESS(ARR)=OPX
 | 
|---|
| 72 |  S RSIZE=RSIZE+$L(OPX)+2
 | 
|---|
| 73 |  Q
 | 
|---|
| 74 | WP ; Word Processing Fields
 | 
|---|
| 75 |  K OPX
 | 
|---|
| 76 |  N DIWL,DIWR,DIWF,OPGLB,OPNODE,X,OPI,NUM,WPAR,F332,F347
 | 
|---|
| 77 |  S NUM=0,OPI=0
 | 
|---|
| 78 |  K ^UTILITY($J,"W")
 | 
|---|
| 79 |  S DIWL=1,DIWR="",DIWF="|C132"
 | 
|---|
| 80 |  ; Patch 5 llh - added logic to concatenate field 332 to WP field (165)
 | 
|---|
| 81 |  I OPFLD=165 D
 | 
|---|
| 82 |  .S F332=$$GET1^DIQ(2260,OOPDA,"332:1")
 | 
|---|
| 83 |  .I $G(F332)'="" S X=F332 D ^DIWP
 | 
|---|
| 84 |  .;v2 p11 - concatenate Reason for Dispute to fld 165 in block 36
 | 
|---|
| 85 |  .S F347=$$GET1^DIQ(2260,OOPDA,"347:.01")
 | 
|---|
| 86 |  .I $G(F347)'="" S X=F347 D ^DIWP
 | 
|---|
| 87 |  S OPNODE=$P($$GET1^DID(2260,OPFLD,"","GLOBAL SUBSCRIPT LOCATION"),";")
 | 
|---|
| 88 |  S OPI=0 F  S OPI=$O(^OOPS(2260,OOPDA,OPNODE,OPI)) Q:'OPI  S X=$G(^OOPS(2260,OOPDA,OPNODE,OPI,0)) D
 | 
|---|
| 89 |  . I $TR(X," ","")="" Q
 | 
|---|
| 90 |  . I X]"" D ^DIWP
 | 
|---|
| 91 |  S OPT=$G(^UTILITY($J,"W",1))+0
 | 
|---|
| 92 |  ; If OPT=0 then no data in ^UTILITY($J,"W") so quit
 | 
|---|
| 93 |  I 'OPT Q
 | 
|---|
| 94 |  ; Need to set up an array to see if max segments exceeded
 | 
|---|
| 95 |  I OPT S OPI=0 F OPC=1:1:OPT S OPI=$O(^UTILITY($J,"W",1,OPI)) Q:'OPI  D
 | 
|---|
| 96 |  . S NUM=NUM+1
 | 
|---|
| 97 |  . S WPAR(NUM)=SEG_U_OPC_U_OPT_U_$$UP^OOPSUTL4($E(^UTILITY($J,"W",1,OPI,0),1,132))_"^|"
 | 
|---|
| 98 |  ; Fileman puts spaces at end of last node - need to strip off.
 | 
|---|
| 99 |  S STRP=$P(WPAR(NUM),U,4)
 | 
|---|
| 100 |  F K=$L(STRP):-1:1 Q:$E(STRP,K)'=" "  S STRP=$E(STRP,1,(K-1))
 | 
|---|
| 101 |  S $P(WPAR(NUM),U,4)=STRP
 | 
|---|
| 102 |  K STRP
 | 
|---|
| 103 |  I NUM>4 D  ; if max segments exceeded fix here
 | 
|---|
| 104 |  . N BEG,END,STR,TMP
 | 
|---|
| 105 |  . F I=1:1:NUM S STR(I)=$P(WPAR(I),U,4)
 | 
|---|
| 106 |  . F I=1:1:(NUM-1) S TMP=132-$L(STR(I)) I TMP D
 | 
|---|
| 107 |  .. S END=$E(STR(I),$L(STR(I))),BEG=$E(STR(I+1))
 | 
|---|
| 108 |  .. ; put a blank in if needed
 | 
|---|
| 109 |  .. I $A(END)'=32,$A(BEG)'=32 S STR(I)=STR(I)_" ",TMP=TMP-1
 | 
|---|
| 110 |  .. S STR(I)=STR(I)_$E(STR(I+1),1,TMP)
 | 
|---|
| 111 |  .. S STR(I+1)=$E(STR(I+1),(TMP+1),$L(STR(I+1)))
 | 
|---|
| 112 |  .. I $L(STR(I)) S $P(WPAR(I),U,4)=STR(I)
 | 
|---|
| 113 |  .. I '$L(STR(I)) K WPAR(I)
 | 
|---|
| 114 |  . I '$L(STR(NUM)) K WPAR(NUM)
 | 
|---|
| 115 |  ; load temporary array into MESS array to load into Mailman message
 | 
|---|
| 116 |  S NSEG=$O(WPAR(""),-1)
 | 
|---|
| 117 |  S NUM=0 F  S NUM=$O(WPAR(NUM)) Q:NUM=""  D
 | 
|---|
| 118 |  . S OPX=WPAR(NUM),$P(OPX,U,3)=NSEG
 | 
|---|
| 119 |  . S ARR=ARR+1,MESS(ARR)=OPX
 | 
|---|
| 120 |  . S RSIZE=RSIZE+$L(OPX)+2
 | 
|---|
| 121 |  K ^UTILITY($J,"W"),X,OPFLD,NSEG
 | 
|---|
| 122 |  Q
 | 
|---|