| 1 | RMPREOS ;HINES-CIOFO/HNC -Suspense Processing ; 2/25/04 10:26am
 | 
|---|
| 2 |  ;;3.0;PROSTHETICS;**45,50,52,55,57,62,80,85,97,135**;Feb 09, 1996;Build 12
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ;  HNC - patch 52 - 9/22/00 Modify EN2 not to check for RMPRFLAG
 | 
|---|
| 5 |  ;                           RMPRCLOS, or FLAG.
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  ;  HNC - patch 55 - 3/12/01 allow other note without initial
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 |  ;  HNC - patch 57 - 5/8/01  close out note message
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 |  ;  RVD - patch 62 - 8/13/01 link suspense to 2319 records.
 | 
|---|
| 12 |  ;
 | 
|---|
| 13 |  ;  HNC - patch 80 - 8/28/03 Type to allow Editing, CLOSE SUSPENSE NOT 
 | 
|---|
| 14 |  ;                           CLOSED Screen Service for Consult Tracking 
 | 
|---|
| 15 |  ;                           (per Jerry)
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 |  ;  TH  - patch 85 - 2/20/04 Fix bug-overwrite Initial Action Date, 
 | 
|---|
| 18 |  ;                           Note, and DUZ problem.
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 |  ;  KAM - patch 85 - 3/16/04 Allow forwarding of a consult to a "Tracker
 | 
|---|
| 21 |  ;                           Only" service
 | 
|---|
| 22 |  ;  KAM - patch 97 - 8/19/04 Stop canceling the original consult when
 | 
|---|
| 23 |  ;                           canceling the clone (in file 123)
 | 
|---|
| 24 |  ;  
 | 
|---|
| 25 |  ;Patch 80 -Read File 123.5 DBIA 3861
 | 
|---|
| 26 |  ;
 | 
|---|
| 27 | EN ;Add Manual Suspense
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 |  D NOW^%DTC S X=%
 | 
|---|
| 30 |  S DIC="^RMPR(668,",DIC(0)="AEQLM",DLAYGO=668
 | 
|---|
| 31 |  S DIC("DR")="1////^S X=RMPRDFN;22R;14////^S X=""O"";8////^S X=DUZ;9////^S X=5;3////^S X=9;2////^S X=RMPR(""STA"")"
 | 
|---|
| 32 |  K DINUM,D0,DD,DO D FILE^DICN K DLAYGO G:Y'>0 EX S (RDA,DA)=+Y
 | 
|---|
| 33 |  S DIE="^RMPR(668,",DR="13;4"
 | 
|---|
| 34 |  L +^RMPR(668,RDA,0):1 I $T=0 W $C(7),?5,!,"Someone else is editing this record" G EX
 | 
|---|
| 35 |  D ^DIE L -^RMPR(668,RDA,0)
 | 
|---|
| 36 |  I '$P(^RMPR(668,RDA,0),U,3) S DA=RDA,DIK="^RMPR(668," D ^DIK W !,$C(7),?5,"Deleted..."
 | 
|---|
| 37 | EX K X,DIC,DIE,DR,Y
 | 
|---|
| 38 |  Q
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 | EN2 ;edit MANUAL suspense record
 | 
|---|
| 41 |  ;DA must be defined
 | 
|---|
| 42 |  ;
 | 
|---|
| 43 |  I $P(^RMPR(668,DA,0),U,8)'>4 W !!!,"Can Not Edit This Suspense Record!",!! H 2 Q
 | 
|---|
| 44 | PROC L +^RMPR(668,DA):1 I $T=0 W !,?5,$C(7),"Someone else is Editing this entry!" Q
 | 
|---|
| 45 |  S RO=$G(^RMPR(668,DA,0)),Y=$P(^(0),U,1) X ^DD("DD")
 | 
|---|
| 46 |  W "   ",Y,"  ",$E($P(^DPT($P(RO,U,2),0),U,1),1,20)
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  S RZ="S RX=$P(RO,U,3),RR=$S(RX=1:""PSC"",RX=2:""2421"",RX=3:""2237"",RX=4:""2529-3"",RX=5:""2529-7"",RX=6:""2474"",RX=7:""2431"",RX=8:""2914"",RX=9:""OTHER"",RX=10:""2520"",RX=11:""STOCK ISSUE"",1:""NONE"")"
 | 
|---|
| 49 |  X RZ
 | 
|---|
| 50 |  W "  ",RR,"  ",$S($P(RO,U,5)?7N.N:"CLOSED",1:"OPEN")
 | 
|---|
| 51 |  S DIE="^RMPR(668,"
 | 
|---|
| 52 |  ;Q:$D(RMPRFLAG)!$D(RMPRCLOS)!$D(FLAG)
 | 
|---|
| 53 |  S DR="2R;22R;3;13;4"
 | 
|---|
| 54 |  D ^DIE
 | 
|---|
| 55 |  L -^RMPR(668,DA)
 | 
|---|
| 56 |  Q
 | 
|---|
| 57 | ENIA ;initial action note
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 |  I $D(^RMPR(668,DA,3)) W !!!,"Initial Action Note Already Posted!",!! H 2 Q
 | 
|---|
| 60 |  L +^RMPR(668,DA):1 I $T=0 W !,?5,$C(7),"Someone else is Editing this entry!" Q
 | 
|---|
| 61 |  D NOW^%DTC S RMPREODT=%
 | 
|---|
| 62 |  ;link suspense to 2319 record, patch #62
 | 
|---|
| 63 |  I $D(^TMP($J,"RMPRPCE",660)) S ^TMP($J,"RMPRPCE",668,DA)="" D SEL60^RMPRPCEL
 | 
|---|
| 64 |  S DIE="^RMPR(668,"
 | 
|---|
| 65 |  S DR="7"
 | 
|---|
| 66 |  D ^DIE
 | 
|---|
| 67 |  I $D(^RMPR(668,DA,3)) S DR="10////^S X=RMPREODT;16////^S X=DUZ;14///^S X=""P""" D ^DIE
 | 
|---|
| 68 |  L -^RMPR(668,DA)
 | 
|---|
| 69 |  ;check for a note here
 | 
|---|
| 70 |  I '$D(^RMPR(668,DA,3)) Q
 | 
|---|
| 71 |  ;consult ien
 | 
|---|
| 72 |  S GMRCO=$P(^RMPR(668,DA,0),U,15) Q:GMRCO=""
 | 
|---|
| 73 |  ;note in array
 | 
|---|
| 74 |  S RMPRCMT=0,GMRCMT=1
 | 
|---|
| 75 |  F  S RMPRCMT=$O(^RMPR(668,DA,3,RMPRCMT)) Q:RMPRCMT=""  D
 | 
|---|
| 76 |  .S GMRCMT(RMPRCMT)=^RMPR(668,DA,3,RMPRCMT,0)
 | 
|---|
| 77 |  I $G(GMRCMT(1))="" S GMRCMT(1)="nothing noted"
 | 
|---|
| 78 |  ;call api
 | 
|---|
| 79 |  D CMT^GMRCGUIB(GMRCO,.GMRCMT,DUZ,RMPREODT,DUZ)
 | 
|---|
| 80 |  K RMPREODT,GMRCO,RMGMRCO,GMRCMT,RMPRCMT
 | 
|---|
| 81 |  Q
 | 
|---|
| 82 | FORW ;forward consult
 | 
|---|
| 83 |  I $P(^RMPR(668,DA,0),U,8)>4 W !!!,"Can Not Forward.",!! H 2 Q
 | 
|---|
| 84 |  I $D(^RMPR(668,DA,4,1,0)) W !!!,"Completion Note Already Posted!",!! H 2 Q
 | 
|---|
| 85 |  D NOW^%DTC S RMPREODT=%,GMRCAD=%
 | 
|---|
| 86 |  ;lookup service to forward consult
 | 
|---|
| 87 |  ;S DIC("S")="I '$P(^(0),U,2),'+$G(^GMR(123.5,+Y,""IFC""))" ;*85
 | 
|---|
| 88 |  S DIC("S")="I $$SCR^RMPREOS(+Y,DUZ)"                       ;*85
 | 
|---|
| 89 |  S DIC="^GMR(123.5,",DIC(0)="AEQ"
 | 
|---|
| 90 |  S DIC("A")="Select Service To Forward Consult: "
 | 
|---|
| 91 |  D ^DIC
 | 
|---|
| 92 |  I (+Y'>0)!($D(DTOUT))!$D(DUOUT) W !!,"Not Forwarded! No Service Selected ." H 2 K DIC Q
 | 
|---|
| 93 |  S GMRCSS=+Y
 | 
|---|
| 94 |  L +^RMPR(668,DA):1 I $T=0 W !,?5,$C(7),"Someone else is Editing this entry!"
 | 
|---|
| 95 |  S DIE="^RMPR(668,"
 | 
|---|
| 96 |  ;stuff Consult forward service
 | 
|---|
| 97 |  S DR="23////^S X=GMRCSS"
 | 
|---|
| 98 |  D ^DIE
 | 
|---|
| 99 |  Q:'$P($G(^RMPR(668,DA,8)),U,6)
 | 
|---|
| 100 |  S DR="12"
 | 
|---|
| 101 |  D ^DIE
 | 
|---|
| 102 |  I $D(^RMPR(668,DA,4,1,0)) S DR="5////^S X=RMPREODT;6////^S X=DUZ;14///^S X=""C""" D ^DIE
 | 
|---|
| 103 |  ;must have a note
 | 
|---|
| 104 |  I '$D(^RMPR(668,DA,4,1,0)) W !!,"Must Have Note to Forward. Consult Not Forwarded." S $P(^RMPR(668,DA,8),U,6)="" H 2 Q
 | 
|---|
| 105 |  ;
 | 
|---|
| 106 |  ; set initial action note if null
 | 
|---|
| 107 |  ;I '$P(^RMPR(668,DA,0),U,10) D
 | 
|---|
| 108 |  ;
 | 
|---|
| 109 |  ; Check if Initial Action Date is null
 | 
|---|
| 110 |  I $P(^RMPR(668,DA,0),U,9)="" D
 | 
|---|
| 111 |  .S DIE="^RMPR(668,"
 | 
|---|
| 112 |  .; Set Initial Action Note
 | 
|---|
| 113 |  .S DR="7///^S X=""See Completion Note, this was forwarded to another service."""
 | 
|---|
| 114 |  .D ^DIE
 | 
|---|
| 115 |  .; Set Initial Action Date and Initial Action By 
 | 
|---|
| 116 |  .;S DR="10////^S X=RMPREODT;16////^S X=DUZ;24////^S X=DUZ" D ^DIE
 | 
|---|
| 117 |  .S DR="10////^S X=RMPREODT;16////^S X=DUZ" D ^DIE
 | 
|---|
| 118 |  ;
 | 
|---|
| 119 |  ; Set Forwarded By
 | 
|---|
| 120 |  S DR="24////^S X=DUZ" D ^DIE
 | 
|---|
| 121 |  ;
 | 
|---|
| 122 |  L -^RMPR(668,DA)
 | 
|---|
| 123 |  K RMPREODT
 | 
|---|
| 124 |  S GMRCO=$P(^RMPR(668,DA,0),U,15)
 | 
|---|
| 125 |  Q:GMRCO=""
 | 
|---|
| 126 |  ;note in array
 | 
|---|
| 127 |  S RMPRCOM=0
 | 
|---|
| 128 |  F  S RMPRCOM=$O(^RMPR(668,DA,4,RMPRCOM)) Q:RMPRCOM=""  D
 | 
|---|
| 129 |  .S GMRCOM(RMPRCOM)=^RMPR(668,DA,4,RMPRCOM,0)
 | 
|---|
| 130 |  I $G(GMRCOM)="" S GMRCOM="not noted"
 | 
|---|
| 131 |  S GMRCORNP=DUZ
 | 
|---|
| 132 |  S GMRCURGI=""
 | 
|---|
| 133 |  S GMRCATTN=""
 | 
|---|
| 134 |  S BDC=$$FR^GMRCGUIA(.GMRCO,.GMRCSS,.GMRCORNP,.GMRCATTN,.GMRCURGI,.GMRCOM,.GMRCAD)
 | 
|---|
| 135 |  I +BDC=1 W !!,"ERROR, DID NOT FORWARD!" H 2
 | 
|---|
| 136 |  W !!,"Consult Forwarded." H 2
 | 
|---|
| 137 |  K GMRCO,GMRCSS,GMRCORNP,GMRCATTN,GMRCURGI,GMRCOM,GMRCAD
 | 
|---|
| 138 |  Q
 | 
|---|
| 139 | CLNT ;post closed note
 | 
|---|
| 140 |  ;
 | 
|---|
| 141 |  I $P(^RMPR(668,DA,0),U,10)="C" W !!!,"Completion Note Already Posted!",!! H 2 Q
 | 
|---|
| 142 |  L +^RMPR(668,DA):1 I $T=0 W !,?5,$C(7),"Someone else is Editing this entry!" Q
 | 
|---|
| 143 |  D NOW^%DTC S RMPREODT=%,GMRCAD=%
 | 
|---|
| 144 |  ;link suspense to 2319 record, patch #62
 | 
|---|
| 145 |  I $D(^TMP($J,"RMPRPCE",660)) S ^TMP($J,"RMPRPCE",668,DA)="" D SEL60^RMPRPCEL
 | 
|---|
| 146 |  S DIE="^RMPR(668,"
 | 
|---|
| 147 |  S DR="12"
 | 
|---|
| 148 |  D ^DIE
 | 
|---|
| 149 |  I '$D(^RMPR(668,DA,4)) Q
 | 
|---|
| 150 |  I $D(^RMPR(668,DA,4)) S DR="5////^S X=RMPREODT;6////^S X=DUZ;14///^S X=""C""" D ^DIE
 | 
|---|
| 151 |  ;set initial action note if null
 | 
|---|
| 152 |  I '$P(^RMPR(668,DA,0),U,9) D
 | 
|---|
| 153 |  .S DIE="^RMPR(668,"
 | 
|---|
| 154 |  .S DR="7///^S X=""See Completion Note for Initial Action Taken."""
 | 
|---|
| 155 |  .D ^DIE
 | 
|---|
| 156 |  .S DR="10////^S X=RMPREODT;16////^S X=DUZ" D ^DIE
 | 
|---|
| 157 |  ;added by #62.  Once closed, update all 2319 record for initial and
 | 
|---|
| 158 |  ;completion date
 | 
|---|
| 159 |  D ICDT^RMPRPCEL(DA)
 | 
|---|
| 160 |  ;
 | 
|---|
| 161 |  L -^RMPR(668,DA)
 | 
|---|
| 162 |  K RMPREODT
 | 
|---|
| 163 |  S GMRCO=$P(^RMPR(668,DA,0),U,15)
 | 
|---|
| 164 |  Q:GMRCO=""
 | 
|---|
| 165 |  ;note in array
 | 
|---|
| 166 |  S RMPRCOM=0
 | 
|---|
| 167 |  F  S RMPRCOM=$O(^RMPR(668,DA,4,RMPRCOM)) Q:RMPRCOM=""  D
 | 
|---|
| 168 |  .S GMRCOM(RMPRCOM)=^RMPR(668,DA,4,RMPRCOM,0)
 | 
|---|
| 169 |  I $G(GMRCOM)="" S GMRCOM="not noted"
 | 
|---|
| 170 |  S GMRCSF="U"
 | 
|---|
| 171 |  S GMRCA=10
 | 
|---|
| 172 |  S GMRCALF="N"
 | 
|---|
| 173 |  S GMRCATO=""
 | 
|---|
| 174 |  S (GMRCORNP,GMRCDUZ)=DUZ
 | 
|---|
| 175 |  S BDC=$$SFILE^GMRCGUIB(.GMRCO,.GMRCA,.GMRCSF,.GMRCORNP,.GMRCDUZ,.GMRCOM,.GMRCALF,.GMRCATO,.GMRCAD)
 | 
|---|
| 176 |  I +BDC=1 W !!,$P(BDC,U,2) H 2
 | 
|---|
| 177 |  K GMRCO,GMRCA,GMRCSF,GMRCORNP,GMRCDUZ,GMRCOM,GMRCALF,GMRCATO,GMRCAD
 | 
|---|
| 178 |  Q
 | 
|---|
| 179 | OACT ;other notes - no initial needed 3/12/01
 | 
|---|
| 180 |  ;stuff date/time in.01
 | 
|---|
| 181 |  ;delete if no note
 | 
|---|
| 182 |  ;I '$D(^RMPR(668,DA,3,1,0)) W !!!,"No Initial Action Taken... ",!! H 2 Q
 | 
|---|
| 183 |  ;
 | 
|---|
| 184 |  L +^RMPR(668,DA):1 I $T=0 W !,?5,$C(7),"Someone else is Editing this entry!" Q
 | 
|---|
| 185 |  ;link suspense to 2319 record, patch #62
 | 
|---|
| 186 |  I $D(^TMP($J,"RMPRPCE",660)) S ^TMP($J,"RMPRPCE",668,DA)="" D SEL60^RMPRPCEL
 | 
|---|
| 187 |  S DA(1)=DA,RMPRDA1=DA
 | 
|---|
| 188 |  S DIC="^RMPR(668,"_DA(1)_",1,"
 | 
|---|
| 189 |  S DIC(0)="CQL"
 | 
|---|
| 190 |  S DIC("P")=$P(^DD(668,11,0),U,2)
 | 
|---|
| 191 |  D NOW^%DTC S X=%,GMRCWHN=%
 | 
|---|
| 192 |  S DLAYGO=688
 | 
|---|
| 193 |  D ^DIC
 | 
|---|
| 194 |  I Y=-1 K DIC,DA Q
 | 
|---|
| 195 |  S DIE=DIC K DIC
 | 
|---|
| 196 |  S (DA,RMPRDA2)=+Y
 | 
|---|
| 197 |  S DR="1" D ^DIE
 | 
|---|
| 198 |  K DIE,DR,Y
 | 
|---|
| 199 |  I '$D(^RMPR(668,RMPRDA1,1,RMPRDA2,1,0)) D  Q
 | 
|---|
| 200 |  .;delete the record if no note
 | 
|---|
| 201 |  .S DIK="^RMPR(668,RMPRDA1,1,"
 | 
|---|
| 202 |  .S DA=RMPRDA2
 | 
|---|
| 203 |  .D ^DIK
 | 
|---|
| 204 |  .K DA,DIA,RMPRDA1,RMPRDA2,GMRCWHN
 | 
|---|
| 205 |  ;send data to consults if note
 | 
|---|
| 206 |  S GMRCO=$P(^RMPR(668,RMPRDA1,0),U,15)
 | 
|---|
| 207 |  I GMRCO="" Q
 | 
|---|
| 208 |  ;GMRCOM is comment array
 | 
|---|
| 209 |  S RMPRCOM=0
 | 
|---|
| 210 |  F  S RMPRCOM=$O(^RMPR(668,RMPRDA1,1,RMPRDA2,1,RMPRCOM)) Q:RMPRCOM=""  D
 | 
|---|
| 211 |  .S GMRCOM(RMPRCOM)=^RMPR(668,RMPRDA1,1,RMPRDA2,1,RMPRCOM,0)
 | 
|---|
| 212 |  ;
 | 
|---|
| 213 |  L -^RMPR(668,RMPRDA1)
 | 
|---|
| 214 |  ;GMRCWHN was set to date/time
 | 
|---|
| 215 |  D CMT^GMRCGUIB(.GMRCO,.GMRCOM,"",.GMRCWHN,DUZ)
 | 
|---|
| 216 |  ;check ok
 | 
|---|
| 217 |  K DA,DIK,RMPRDA1,RMPRDA2,RMPRCOM,GMRCOM,GMRCO,GMRCWHN
 | 
|---|
| 218 |  Q
 | 
|---|
| 219 | CANCEL ;cancel suspense
 | 
|---|
| 220 |  ;set status to X and cancelled by to duz, date/time.
 | 
|---|
| 221 |  ;start
 | 
|---|
| 222 |  ;
 | 
|---|
| 223 |  I $P(^RMPR(668,DA,0),U,5)'="" W !!!,"This has already been completed, cannot cancel!",!! H 2  Q
 | 
|---|
| 224 |  L +^RMPR(668,DA):1 I $T=0 W !,?5,$C(7),"Someone else is Editing this entry!" Q
 | 
|---|
| 225 |  K Y
 | 
|---|
| 226 |  S DIR(0)="Y",DIR("B")="N"
 | 
|---|
| 227 |  W !!!,"This will CANCEL/DELETE this Suspense Request."
 | 
|---|
| 228 |  S DIR("A")="Are you sure you want to CANCEL/DELETE this Suspense Request? (Y/N) "
 | 
|---|
| 229 |  D ^DIR I $D(DTOUT)!$D(DUOUT)!(Y="^")!(Y=0) W !!,"Suspense Not Cancelled!" H 2  Q
 | 
|---|
| 230 |  D NOW^%DTC S RMPREODT=%
 | 
|---|
| 231 |  S DIE="^RMPR(668,"
 | 
|---|
| 232 |  S DR="14///^S X=""X"";17////^S X=DUZ;18////^S X=RMPREODT;9"
 | 
|---|
| 233 |  D ^DIE
 | 
|---|
| 234 |  W !!,?5,"DELETED/CANCELLED!" H 2
 | 
|---|
| 235 |  L -^RMPR(668,DA)
 | 
|---|
| 236 |  ;consult ien
 | 
|---|
| 237 |  S GMRCO=$P(^RMPR(668,DA,0),U,15) Q:GMRCO=""
 | 
|---|
| 238 |  ;note in array
 | 
|---|
| 239 |  S RMPRCMT=0
 | 
|---|
| 240 |  F  S RMPRCMT=$O(^RMPR(668,DA,9,RMPRCMT)) Q:RMPRCMT=""  D
 | 
|---|
| 241 |  .S GMRCMT(RMPRCMT)=^RMPR(668,DA,9,RMPRCMT,0)
 | 
|---|
| 242 |  I $G(GMRCMT)="" S GMRCMT="nothing noted"
 | 
|---|
| 243 |  ;call api
 | 
|---|
| 244 |  ;DY for cancelled, deny
 | 
|---|
| 245 |  S GMRCACTM="DY"
 | 
|---|
| 246 |  ; PATCH RMPR*3*97 if canceling a clone do not update file 123 7=clone
 | 
|---|
| 247 |  I $P(^RMPR(668,DA,0),U,8)'=7 D
 | 
|---|
| 248 |  . S RMGMRCO=$$DC^GMRCGUIA(.GMRCO,DUZ,RMPREODT,.GMRCACTM,.GMRCMT)
 | 
|---|
| 249 |  K RMPREODT,GMRCMT,RMPRCMT,GMRCACTM
 | 
|---|
| 250 |  Q
 | 
|---|
| 251 |  ;
 | 
|---|
| 252 | LINK60 ;link suspense to 2319 records
 | 
|---|
| 253 |  S RMSERR=0
 | 
|---|
| 254 |  F RMSI=0:0 S RMSI=$O(^TMP($J,"RMPRPCE",660,RMSI)) Q:RMSI'>0  D
 | 
|---|
| 255 |  .S RMSAMIS=$G(^TMP($J,"RMPRPCE",660,RMSI))
 | 
|---|
| 256 |  .;call update 668
 | 
|---|
| 257 |  .S RMSERR=$$UP68^RMPRPCE1(RMSI,DA,+RMSAMIS)
 | 
|---|
| 258 |  Q:RMSERR=1
 | 
|---|
| 259 |  S ^TMP($J,"RMPRPCE",668,DA)=""
 | 
|---|
| 260 |  Q
 | 
|---|
| 261 |  ;end
 | 
|---|
| 262 | SCR(SERV,USR) ; SCREEN SERVICES THAT CAN BE FORWARDED TO ,RMPR*3*85
 | 
|---|
| 263 |  N USAGE
 | 
|---|
| 264 |  S USAGE=$P(^GMR(123.5,SERV,0),U,2)
 | 
|---|
| 265 |  I USAGE=9!(USAGE=1) Q 0  ;disabled or grouper service
 | 
|---|
| 266 |  I USAGE=2 Q $$VALIDU^GMRCAU(SERV,USR)  ;tracking and check update user
 | 
|---|
| 267 |  Q 1  ;service usage must be null = O
 | 
|---|