- RMPR5HQ7 ;HCIOFO/ODJ - INVENTORY ROLL UP - CREATE ^TMP GLOBAL FOR MAILING ; 20 SEP 00
- ;;3.0;PROSTHETICS;**51**;Feb 09, 1996
- Q
- ;
- ; Required vars are
- ; RMPRSDT
- ; RMPREDT
- MAIL N KEYS,EOF,LINE,STR,TSTR,GROUP,CHNG,TNAM,USTR
- S TNAM="RMPR5A"
- K ^TMP($J,TNAM)
- D GRPARY^RMPR5HQ4(.GROUP)
- D INIT^RMPR5HQ6(.KEYS,.EOF,.CHNG)
- I EOF G MAILX
- S TSTR=""
- S $P(TSTR,"^",3)=$E(RMPRSDT,4,5)_"/"_$E(RMPRSDT,6,7)_"/"_(1700+$E(RMPRSDT,1,3))
- S $P(TSTR,"^",4)=$E(RMPREDT,4,5)_"/"_$E(RMPREDT,6,7)_"/"_(1700+$E(RMPREDT,1,3))
- S LINE=0
- F D Q:EOF
- . I CHNG("STATION") D
- .. S $P(TSTR,"^",2)=$P($G(^DIC(4,KEYS("STATION"),0)),"^",1)
- .. S I=$O(^RMPR(669.9,"C",KEYS("STATION"),"")) Q:I=""
- .. S $P(TSTR,"^",1)=$P($G(^RMPR(669.9,I,"INV")),"^",2) ;VISN
- .. Q
- . I CHNG("NPPD_GROUP") S $P(TSTR,"^",5)=GROUP(KEYS("NPPD_GROUP"))
- . I CHNG("NPPD_LINE") S $P(TSTR,"^",6)=KEYS("NPPD_LINE")_" "_$$NPLIN^RMPR5HQ5(KEYS("NPPD_LINE"))
- . ;I CHNG("HCPC_CODE") S $P(TSTR,"^",7)=$$GETITEM^RMPR5HQ5(KEYS("HCPC_IEN"),"")
- . I CHNG("HCPC_CODE") S $P(TSTR,"^",7)=KEYS("HCPC_CODE")
- . D RDHCPC(.KEYS,.STR) S:'+$P(STR,"^",3) $P(STR,"^",3)=""
- . I $L(STR,"^")<13 S $P(STR,"^",13)=""
- . F I=6,12 S:+$P(STR,"^",I) $P(STR,"^",I)=$J($P(STR,"^",I),0,2)
- . F I=7,13 S:+$P(STR,"^",I) $P(STR,"^",I)=$J($P(STR,"^",I),0,1)
- . I (+$P(STR,"^",1)&+$P(STR,"^",2))!(+$P(STR,"^",8)&+$P(STR,"^",9)) D
- .. S USTR=STR
- .. F I=2,5,6,7,9,11 S $P(USTR,"^",I)=""
- .. F I=1,4,8,10,12,13 S $P(STR,"^",I)=""
- .. S LINE=LINE+1
- .. D MAP(USTR,.TSTR)
- .. S ^TMP($J,TNAM,LINE)=TSTR
- .. S TSTR=$P(TSTR,"^",1,7)
- .. Q
- . S LINE=LINE+1
- . D MAP(STR,.TSTR)
- . S ^TMP($J,TNAM,LINE)=TSTR
- . S TSTR=$P(TSTR,"^",1,7)
- . D NXHCPC(.KEYS,.EOF,.CHNG)
- . Q
- MAILX Q
- ;
- ; Read HCPC level in ^TMP
- RDHCPC(PRIKEY,MYSTR) ;
- N TNAM,STATION,NPGRP,NPLIN,HCPC
- S TNAM="RMPR5"
- S STATION=PRIKEY("STATION")
- S NPGRP=PRIKEY("NPPD_GROUP")
- S NPLIN=PRIKEY("NPPD_LINE")
- S HCPC=PRIKEY("HCPC")
- S MYSTR=$G(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC))
- Q
- ;
- ; Get next HCPC code
- NXHCPC(RMPRKEY,RMPREOF,RMPRCHNG) ;
- N TNAM,NPGRP,NPLIN,HCPC,ITEM,INVIEN,STATION
- S TNAM="RMPR5"
- S STATION=RMPRKEY("STATION")
- S NPGRP=RMPRKEY("NPPD_GROUP")
- S NPLIN=RMPRKEY("NPPD_LINE")
- S HCPC=RMPRKEY("HCPC")
- S RMPRCHNG("STATION")=0
- S RMPREOF=0,RMPRCHNG("NPPD_GROUP")=0,RMPRCHNG("NPPD_LINE")=0
- S HCPC=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC))
- S:HCPC="" NPLIN=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN))
- S:NPLIN="" NPGRP=$O(^TMP($J,TNAM,STATION,NPGRP))
- S:NPGRP="" STATION=$O(^TMP($J,TNAM,STATION))
- I STATION=""!(STATION="Z") S RMPREOF=1,RMPRCHNG("HCPC_CODE")=0,RMPRCHNG("HCPC_ITEM")=0,RMPRCHNG("INVENTORY_IEN")=0 G NXHCPCX
- S:NPGRP="" NPGRP=$O(^TMP($J,TNAM,STATION,"")),RMPRCHNG("STATION")=1
- S:NPLIN="" NPLIN=$O(^TMP($J,TNAM,STATION,NPGRP,"")),RMPRCHNG("NPPD_GROUP")=1
- S:HCPC="" HCPC=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,"")),RMPRCHNG("NPPD_LINE")=1
- S RMPRCHNG("HCPC_CODE")=1
- S ITEM=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC,""))
- S RMPRCHNG("HCPC_ITEM")=1
- S INVIEN=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC,ITEM,""))
- S RMPRCHNG("INVENTORY_IEN")=1
- S RMPRKEY("STATION")=STATION
- S RMPRKEY("NPPD_GROUP")=NPGRP
- S RMPRKEY("NPPD_LINE")=NPLIN
- S RMPRKEY("HCPC")=HCPC
- S RMPRKEY("HCPC_CODE")=$P(HCPC,"/",1)
- S RMPRKEY("HCPC_IEN")=$P(HCPC,"/",2)
- S RMPRKEY("HCPC_ITEM")=ITEM
- S RMPRKEY("INVENTORY_IEN")=INVIEN
- NXHCPCX Q
- MAP(CALC,RUP) ;
- S $P(RUP,"^",8)=$P(CALC,"^",2)
- S $P(RUP,"^",9)=$P(CALC,"^",5)
- S:+$P(RUP,"^",8) $P(RUP,"^",10)=$J($P(RUP,"^",9)/$P(RUP,"^",8),0,2)
- S $P(RUP,"^",11)=$P(CALC,"^",6)
- S $P(RUP,"^",12)=$P(CALC,"^",7)
- S $P(RUP,"^",13)=$P(CALC,"^",9)
- S $P(RUP,"^",14)=$P(CALC,"^",11)
- S:+$P(RUP,"^",13) $P(RUP,"^",15)=$J($P(RUP,"^",14)/$P(RUP,"^",13),0,2)
- S $P(RUP,"^",16)=$P(CALC,"^",1)
- S $P(RUP,"^",17)=$P(CALC,"^",4)
- S:+$P(RUP,"^",16) $P(RUP,"^",18)=$J($P(RUP,"^",17)/$P(RUP,"^",16),0,2)
- S $P(RUP,"^",19)=$P(CALC,"^",12)
- S $P(RUP,"^",20)=$P(CALC,"^",13)
- S $P(RUP,"^",21)=$P(CALC,"^",8)
- S $P(RUP,"^",22)=$P(CALC,"^",10)
- S:+$P(RUP,"^",21) $P(RUP,"^",23)=$J($P(RUP,"^",22)/$P(RUP,"^",21),0,2)
- S $P(RUP,"^",24)=$G(RMCALDAY)
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRMPR5HQ7 4137 printed Feb 18, 2025@23:59:31 Page 2
- RMPR5HQ7 ;HCIOFO/ODJ - INVENTORY ROLL UP - CREATE ^TMP GLOBAL FOR MAILING ; 20 SEP 00
- +1 ;;3.0;PROSTHETICS;**51**;Feb 09, 1996
- +2 QUIT
- +3 ;
- +4 ; Required vars are
- +5 ; RMPRSDT
- +6 ; RMPREDT
- MAIL NEW KEYS,EOF,LINE,STR,TSTR,GROUP,CHNG,TNAM,USTR
- +1 SET TNAM="RMPR5A"
- +2 KILL ^TMP($JOB,TNAM)
- +3 DO GRPARY^RMPR5HQ4(.GROUP)
- +4 DO INIT^RMPR5HQ6(.KEYS,.EOF,.CHNG)
- +5 IF EOF
- GOTO MAILX
- +6 SET TSTR=""
- +7 SET $PIECE(TSTR,"^",3)=$EXTRACT(RMPRSDT,4,5)_"/"_$EXTRACT(RMPRSDT,6,7)_"/"_(1700+$EXTRACT(RMPRSDT,1,3))
- +8 SET $PIECE(TSTR,"^",4)=$EXTRACT(RMPREDT,4,5)_"/"_$EXTRACT(RMPREDT,6,7)_"/"_(1700+$EXTRACT(RMPREDT,1,3))
- +9 SET LINE=0
- +10 FOR
- Begin DoDot:1
- +11 IF CHNG("STATION")
- Begin DoDot:2
- +12 SET $PIECE(TSTR,"^",2)=$PIECE($GET(^DIC(4,KEYS("STATION"),0)),"^",1)
- +13 SET I=$ORDER(^RMPR(669.9,"C",KEYS("STATION"),""))
- if I=""
- QUIT
- +14 ;VISN
- SET $PIECE(TSTR,"^",1)=$PIECE($GET(^RMPR(669.9,I,"INV")),"^",2)
- +15 QUIT
- End DoDot:2
- +16 IF CHNG("NPPD_GROUP")
- SET $PIECE(TSTR,"^",5)=GROUP(KEYS("NPPD_GROUP"))
- +17 IF CHNG("NPPD_LINE")
- SET $PIECE(TSTR,"^",6)=KEYS("NPPD_LINE")_" "_$$NPLIN^RMPR5HQ5(KEYS("NPPD_LINE"))
- +18 ;I CHNG("HCPC_CODE") S $P(TSTR,"^",7)=$$GETITEM^RMPR5HQ5(KEYS("HCPC_IEN"),"")
- +19 IF CHNG("HCPC_CODE")
- SET $PIECE(TSTR,"^",7)=KEYS("HCPC_CODE")
- +20 DO RDHCPC(.KEYS,.STR)
- if '+$PIECE(STR,"^",3)
- SET $PIECE(STR,"^",3)=""
- +21 IF $LENGTH(STR,"^")<13
- SET $PIECE(STR,"^",13)=""
- +22 FOR I=6,12
- if +$PIECE(STR,"^",I)
- SET $PIECE(STR,"^",I)=$JUSTIFY($PIECE(STR,"^",I),0,2)
- +23 FOR I=7,13
- if +$PIECE(STR,"^",I)
- SET $PIECE(STR,"^",I)=$JUSTIFY($PIECE(STR,"^",I),0,1)
- +24 IF (+$PIECE(STR,"^",1)&+$PIECE(STR,"^",2))!(+$PIECE(STR,"^",8)&+$PIECE(STR,"^",9))
- Begin DoDot:2
- +25 SET USTR=STR
- +26 FOR I=2,5,6,7,9,11
- SET $PIECE(USTR,"^",I)=""
- +27 FOR I=1,4,8,10,12,13
- SET $PIECE(STR,"^",I)=""
- +28 SET LINE=LINE+1
- +29 DO MAP(USTR,.TSTR)
- +30 SET ^TMP($JOB,TNAM,LINE)=TSTR
- +31 SET TSTR=$PIECE(TSTR,"^",1,7)
- +32 QUIT
- End DoDot:2
- +33 SET LINE=LINE+1
- +34 DO MAP(STR,.TSTR)
- +35 SET ^TMP($JOB,TNAM,LINE)=TSTR
- +36 SET TSTR=$PIECE(TSTR,"^",1,7)
- +37 DO NXHCPC(.KEYS,.EOF,.CHNG)
- +38 QUIT
- End DoDot:1
- if EOF
- QUIT
- MAILX QUIT
- +1 ;
- +2 ; Read HCPC level in ^TMP
- RDHCPC(PRIKEY,MYSTR) ;
- +1 NEW TNAM,STATION,NPGRP,NPLIN,HCPC
- +2 SET TNAM="RMPR5"
- +3 SET STATION=PRIKEY("STATION")
- +4 SET NPGRP=PRIKEY("NPPD_GROUP")
- +5 SET NPLIN=PRIKEY("NPPD_LINE")
- +6 SET HCPC=PRIKEY("HCPC")
- +7 SET MYSTR=$GET(^TMP($JOB,TNAM,STATION,NPGRP,NPLIN,HCPC))
- +8 QUIT
- +9 ;
- +10 ; Get next HCPC code
- NXHCPC(RMPRKEY,RMPREOF,RMPRCHNG) ;
- +1 NEW TNAM,NPGRP,NPLIN,HCPC,ITEM,INVIEN,STATION
- +2 SET TNAM="RMPR5"
- +3 SET STATION=RMPRKEY("STATION")
- +4 SET NPGRP=RMPRKEY("NPPD_GROUP")
- +5 SET NPLIN=RMPRKEY("NPPD_LINE")
- +6 SET HCPC=RMPRKEY("HCPC")
- +7 SET RMPRCHNG("STATION")=0
- +8 SET RMPREOF=0
- SET RMPRCHNG("NPPD_GROUP")=0
- SET RMPRCHNG("NPPD_LINE")=0
- +9 SET HCPC=$ORDER(^TMP($JOB,TNAM,STATION,NPGRP,NPLIN,HCPC))
- +10 if HCPC=""
- SET NPLIN=$ORDER(^TMP($JOB,TNAM,STATION,NPGRP,NPLIN))
- +11 if NPLIN=""
- SET NPGRP=$ORDER(^TMP($JOB,TNAM,STATION,NPGRP))
- +12 if NPGRP=""
- SET STATION=$ORDER(^TMP($JOB,TNAM,STATION))
- +13 IF STATION=""!(STATION="Z")
- SET RMPREOF=1
- SET RMPRCHNG("HCPC_CODE")=0
- SET RMPRCHNG("HCPC_ITEM")=0
- SET RMPRCHNG("INVENTORY_IEN")=0
- GOTO NXHCPCX
- +14 if NPGRP=""
- SET NPGRP=$ORDER(^TMP($JOB,TNAM,STATION,""))
- SET RMPRCHNG("STATION")=1
- +15 if NPLIN=""
- SET NPLIN=$ORDER(^TMP($JOB,TNAM,STATION,NPGRP,""))
- SET RMPRCHNG("NPPD_GROUP")=1
- +16 if HCPC=""
- SET HCPC=$ORDER(^TMP($JOB,TNAM,STATION,NPGRP,NPLIN,""))
- SET RMPRCHNG("NPPD_LINE")=1
- +17 SET RMPRCHNG("HCPC_CODE")=1
- +18 SET ITEM=$ORDER(^TMP($JOB,TNAM,STATION,NPGRP,NPLIN,HCPC,""))
- +19 SET RMPRCHNG("HCPC_ITEM")=1
- +20 SET INVIEN=$ORDER(^TMP($JOB,TNAM,STATION,NPGRP,NPLIN,HCPC,ITEM,""))
- +21 SET RMPRCHNG("INVENTORY_IEN")=1
- +22 SET RMPRKEY("STATION")=STATION
- +23 SET RMPRKEY("NPPD_GROUP")=NPGRP
- +24 SET RMPRKEY("NPPD_LINE")=NPLIN
- +25 SET RMPRKEY("HCPC")=HCPC
- +26 SET RMPRKEY("HCPC_CODE")=$PIECE(HCPC,"/",1)
- +27 SET RMPRKEY("HCPC_IEN")=$PIECE(HCPC,"/",2)
- +28 SET RMPRKEY("HCPC_ITEM")=ITEM
- +29 SET RMPRKEY("INVENTORY_IEN")=INVIEN
- NXHCPCX QUIT
- MAP(CALC,RUP) ;
- +1 SET $PIECE(RUP,"^",8)=$PIECE(CALC,"^",2)
- +2 SET $PIECE(RUP,"^",9)=$PIECE(CALC,"^",5)
- +3 if +$PIECE(RUP,"^",8)
- SET $PIECE(RUP,"^",10)=$JUSTIFY($PIECE(RUP,"^",9)/$PIECE(RUP,"^",8),0,2)
- +4 SET $PIECE(RUP,"^",11)=$PIECE(CALC,"^",6)
- +5 SET $PIECE(RUP,"^",12)=$PIECE(CALC,"^",7)
- +6 SET $PIECE(RUP,"^",13)=$PIECE(CALC,"^",9)
- +7 SET $PIECE(RUP,"^",14)=$PIECE(CALC,"^",11)
- +8 if +$PIECE(RUP,"^",13)
- SET $PIECE(RUP,"^",15)=$JUSTIFY($PIECE(RUP,"^",14)/$PIECE(RUP,"^",13),0,2)
- +9 SET $PIECE(RUP,"^",16)=$PIECE(CALC,"^",1)
- +10 SET $PIECE(RUP,"^",17)=$PIECE(CALC,"^",4)
- +11 if +$PIECE(RUP,"^",16)
- SET $PIECE(RUP,"^",18)=$JUSTIFY($PIECE(RUP,"^",17)/$PIECE(RUP,"^",16),0,2)
- +12 SET $PIECE(RUP,"^",19)=$PIECE(CALC,"^",12)
- +13 SET $PIECE(RUP,"^",20)=$PIECE(CALC,"^",13)
- +14 SET $PIECE(RUP,"^",21)=$PIECE(CALC,"^",8)
- +15 SET $PIECE(RUP,"^",22)=$PIECE(CALC,"^",10)
- +16 if +$PIECE(RUP,"^",21)
- SET $PIECE(RUP,"^",23)=$JUSTIFY($PIECE(RUP,"^",22)/$PIECE(RUP,"^",21),0,2)
- +17 SET $PIECE(RUP,"^",24)=$GET(RMCALDAY)
- +18 QUIT