| 1 | RMPRPIUJ ;HINES OIFO/ODJ - CONVERT OLD PIP TO NEW PIP ;3/8/05  11:47 | 
|---|
| 2 | ;;3.0;PROSTHETICS;**61**;Feb 09, 1996 | 
|---|
| 3 | ; DBIA #10090 - Read Access to entire file #4. | 
|---|
| 4 | Q | 
|---|
| 5 | ; | 
|---|
| 6 | ;***** LOCN - Convert Locations in 661.3 to new 661.5 file | 
|---|
| 7 | ;             A GENERIC location will be created as a scratch | 
|---|
| 8 | ;             area. | 
|---|
| 9 | ;             Duplicate location names will not be allowed. | 
|---|
| 10 | ;             Build map file in ^TMP($J,"LOCN" which maps old | 
|---|
| 11 | ;             to new location iens. | 
|---|
| 12 | ; | 
|---|
| 13 | LOCN N RMPRSTN,RMPRLCN,RMPRTOD,RMPRL,RMPRCNT,RMPRREC,RMPRERR,RMPR5,RMPRI | 
|---|
| 14 | N X,Y,DA | 
|---|
| 15 | I '$D(IO("Q")) D | 
|---|
| 16 | . W !,"Creating Locations in file 661.5 " | 
|---|
| 17 | . Q | 
|---|
| 18 | K ^TMP($J,"LOCN") | 
|---|
| 19 | D NOW^%DTC | 
|---|
| 20 | S RMPRTOD=X ; today's date | 
|---|
| 21 | ; | 
|---|
| 22 | ; Init RMPR5 | 
|---|
| 23 | S RMPR5("STATUS")="A" ;active status | 
|---|
| 24 | S RMPR5("STATUS DATE")=RMPRTOD ;status date is today's date | 
|---|
| 25 | S RMPR5("USER")="" | 
|---|
| 26 | S RMPRDUZ=$$GETUSR^RMPRPIU0(DUZ) | 
|---|
| 27 | I $G(DUZ)'="",(RMPRDUZ'="") S RMPR5("USER")=DUZ | 
|---|
| 28 | ; | 
|---|
| 29 | ; Loop on Locations 661.3 | 
|---|
| 30 | S RMPRL=0 | 
|---|
| 31 | LOC1 S RMPRL=$O(^RMPR(661.3,RMPRL)) | 
|---|
| 32 | I '+RMPRL G LOCNX ;exit if no more Locations | 
|---|
| 33 | I '$D(IO("Q")) D | 
|---|
| 34 | . W:$X=79 ! W "." | 
|---|
| 35 | . Q | 
|---|
| 36 | S RMPRREC=$G(^RMPR(661.3,RMPRL,0)) | 
|---|
| 37 | K RMPR5("IEN") | 
|---|
| 38 | S RMPR5("STATION")=$P(RMPRREC,"^",3) ; Station | 
|---|
| 39 | I RMPR5("STATION")="" G LOC1 ;ignore if null Station | 
|---|
| 40 | I '$D(^DIC(4,RMPR5("STATION"),0)) G LOC1 ;ignore if bad ptr. | 
|---|
| 41 | ; | 
|---|
| 42 | ; Create GENERIC stock location if 1st location @ Station | 
|---|
| 43 | I '$D(^RMPR(661.5,"XSL",RMPR5("STATION"))) D | 
|---|
| 44 | . S RMPR5("NAME")="GENERIC" | 
|---|
| 45 | . S RMPR5("ADDRESS")="GENERIC STOCK LOCATION (SYSTEM)" | 
|---|
| 46 | . S RMPRERR=$$CRE^RMPRPIX5(.RMPR5) | 
|---|
| 47 | . K RMPR5("IEN") | 
|---|
| 48 | . Q | 
|---|
| 49 | ; | 
|---|
| 50 | ; Create Location | 
|---|
| 51 | S RMPR5("NAME")=$P(RMPRREC,"^",1) | 
|---|
| 52 | S RMPR5("ADDRESS")=$P(RMPRREC,"^",2) | 
|---|
| 53 | ; | 
|---|
| 54 | ; Check for duplicate location name and force to be unique | 
|---|
| 55 | I $D(^RMPR(661.5,"XSL",RMPR5("STATION"),RMPR5("NAME"))) D | 
|---|
| 56 | . S RMPRCNT=2 | 
|---|
| 57 | . F  D  Q:'$D(^RMPR(661.5,"XSL",RMPR5("STATION"),RMPR5("NAME"))) | 
|---|
| 58 | .. S RMPR5("NAME")=RMPR5("NAME")_" ("_RMPRCNT_")" | 
|---|
| 59 | .. S RMPRCNT=1+RMPRCNT | 
|---|
| 60 | .. Q | 
|---|
| 61 | . Q | 
|---|
| 62 | ; | 
|---|
| 63 | ; Create Location in new 661.5 file | 
|---|
| 64 | S RMPRERR=$$CRE^RMPRPIX5(.RMPR5) | 
|---|
| 65 | S ^TMP($J,"LOCN",RMPRL)=RMPR5("IEN") ; map old to new Locn. ien | 
|---|
| 66 | ; | 
|---|
| 67 | G LOC1 ;next Location | 
|---|
| 68 | ; | 
|---|
| 69 | ;exit | 
|---|
| 70 | LOCNX Q | 
|---|
| 71 | ; | 
|---|
| 72 | UNIT ;update UNIT of issue #661.7 | 
|---|
| 73 | N RI,RMDA,RMU,RHC,RIT,RST,R11DA,R11 | 
|---|
| 74 | F RI=0:0 S RI=$O(^RMPR(661.7,RI)) Q:RI'>0  S RMDA=$G(^RMPR(661.7,RI,0)) D | 
|---|
| 75 | .S RMU=$P(RMDA,U,9) | 
|---|
| 76 | .Q:$G(RMU) | 
|---|
| 77 | .S RHC=$P(RMDA,U,1),RIT=$P(RMDA,U,4),RST=$P(RMDA,U,5) | 
|---|
| 78 | .S R11=$O(^RMPR(661.11,"ASHI",RST,RHC,RIT,0)) | 
|---|
| 79 | .Q:'$G(R11) | 
|---|
| 80 | .Q:'$D(^RMPR(661.11,R11,0)) | 
|---|
| 81 | .S R11DA=$G(^RMPR(661.11,R11,0)),RMU=$P(R11DA,U,6) | 
|---|
| 82 | .Q:'$G(RMU) | 
|---|
| 83 | .S $P(^RMPR(661.7,RI,0),U,9)=RMU | 
|---|
| 84 | Q | 
|---|