| [613] | 1 | LRARNPX1 ;SLC/MRH/FHS/JB0 - NEW PERSON CONVERSION FOR ^LAR("Z" ; 1/23/93 | 
|---|
|  | 2 | ;;5.2;LAB SERVICE;**59,150**;Sep 27, 1994 | 
|---|
|  | 3 | ; | 
|---|
|  | 4 | Q | 
|---|
|  | 5 | PROV(LRFLD,X1,LRSB) ; | 
|---|
|  | 6 | ;  X1 = Pointer value of data that pointed to FILE 16 | 
|---|
|  | 7 | ;  LRFLD = field number or if in a subfile subfile number,field number | 
|---|
|  | 8 | ;  quits with the new value pointer from file 200 or logs an exception | 
|---|
|  | 9 | ;  in ^XTMP("LR52","global root",LRJOB #,subscript 1,LRZD0,field number) | 
|---|
|  | 10 | ;  =error and quits with the old value concantenated with "ERR" | 
|---|
|  | 11 | ;  LRSB is an array that carries all subscripts from the file in | 
|---|
|  | 12 | ;  which the conversion is being done. | 
|---|
|  | 13 | N X,Y,LRNAM | 
|---|
|  | 14 | S X=$G(X1) | 
|---|
|  | 15 | S LRNAM=$P($G(^VA(200,$O(^VA(200,"A16",X,0)),0)),U) | 
|---|
|  | 16 | I '$L(LRNAM) S LRNAM="Non-existant" D POINT(LRFLD,X,LRNAM,.LRSB) G NOP | 
|---|
|  | 17 | S Y=$O(^VA(200,"A16",X,0)) I 'Y D POINT(LRFLD,X,LRNAM,.LRSB) G NOP | 
|---|
|  | 18 | Q Y | 
|---|
|  | 19 | NOP ; | 
|---|
|  | 20 | Q "ERR"_X1 | 
|---|
|  | 21 | ; | 
|---|
|  | 22 | POINT(LRFLD,Y,LRNAM,LRSB) ; | 
|---|
|  | 23 | ; LRFLD - documented at line tag PROV | 
|---|
|  | 24 | ; Y = value from data the should be entry in ^VA(200,Y)) | 
|---|
|  | 25 | ; LRNAM is the externalization of the person/provider pointer from 16 | 
|---|
|  | 26 | ; LRSB is an array with subscript identifiers LRSB(0) first level | 
|---|
|  | 27 | ;      LRSB(1) second level .... | 
|---|
|  | 28 | ; | 
|---|
|  | 29 | I '$G(LRZD1) S ^XTMP("LR52",LRFILE,LRJOB,LRZD0,LRSB(0),LRFLD)=Y_U_LRNAM D EXCEPT^LRARNPX0(LRFILE,LRZD0) Q | 
|---|
|  | 30 | I '$G(LRZD2) S ^XTMP("LR52",LRFILE,LRJOB,LRZD0,LRSB(0),LRZD1,LRFLD)=Y_U_LRNAM D EXCEPT^LRARNPX0(LRFILE,LRZD0) Q | 
|---|
|  | 31 | S ^XTMP("LR52",LRFILE,LRJOB,LRZD0,LRSB(0),LRZD1,LRSB(1),LRZD2,LRFLD)=Y_U_LRNAM D EXCEPT^LRARNPX0(LRFILE,LRZD0) | 
|---|
|  | 32 | Q | 
|---|
|  | 33 | ; | 
|---|
|  | 34 | OUT ; | 
|---|
|  | 35 | I $D(LRIO) D REQUE Q | 
|---|
|  | 36 | ; | 
|---|
|  | 37 | REENT ; re-entry for reque if LRIO is busy from above | 
|---|
|  | 38 | ; | 
|---|
|  | 39 | D HEAD^LRARNPX0(LRFILE) | 
|---|
|  | 40 | I '$O(^XTMP("LR52",LRFILE,LRJOB,0)) W !!?(IOM-$L("****  none found ****"))\2,"**** NONE FOUND ****" | 
|---|
|  | 41 | F LRD0=0:0 S LRD0=$O(^XTMP("LR52",LRFILE,LRJOB,LRD0)) Q:LRD0'>0  S LRD0(0)=$G(^LR(LRD0,0)) F LRSB=".2","AU","BB","CH","CY","EM","MI","SP" D 1 | 
|---|
|  | 42 | W @IOF D ^%ZISC | 
|---|
|  | 43 | K LRAC,LRD0,LRD1,LRFILE,LRFLD,LRJOB,LRSB,LRSF,LRST,LRTI,LRTIT,LRVL | 
|---|
|  | 44 | K LRIO,LRNAM,LRZD0,LRZD1,LRZD2,X,X1,Y,ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE | 
|---|
|  | 45 | Q | 
|---|
|  | 46 | 1 ; | 
|---|
|  | 47 | I LRSB=.2 D 11 Q | 
|---|
|  | 48 | WRITE ; | 
|---|
|  | 49 | Q:'$D(^XTMP("LR52",LRFILE,LRJOB,LRD0,LRSB)) | 
|---|
|  | 50 | S LRD1=$O(^XTMP("LR52",LRFILE,LRJOB,LRD0,LRSB,0)) | 
|---|
|  | 51 | S LRFLD=$O(^XTMP("LR52",LRFILE,LRJOB,LRD0,LRSB,LRD1,0)) Q:LRFLD="" | 
|---|
|  | 52 | S LRVL=$G(^XTMP("LR52",LRFILE,LRJOB,LRD0,LRSB,LRD1,LRFLD)) | 
|---|
|  | 53 | I LRFLD["," S LRTIT=$P($G(@("^DD("_LRFLD_",0)")),U) | 
|---|
|  | 54 | I LRFLD'["," S LRTIT=$P($G(@("^DD("_$P(LRFILE,"-",2)_","_LRFLD_",0)")),U) | 
|---|
|  | 55 | S LRD0(0)=$G(^LR(LRD0,0)) | 
|---|
|  | 56 | I LRSB="AU" S LRD1(0)=$G(^LR(LRD0,"AU")),LRSF="AUTOPSY" D WRIT1 Q | 
|---|
|  | 57 | I LRSB="BB" S LRD1(0)=$G(^LR(LRD0,"BB",LRD1,0)),LRSF="BLOOD BANK" D WRIT1 Q | 
|---|
|  | 58 | I LRSB="CH" S LRD1(0)=$G(^LR(LRD0,"CH",LRD1,0)),LRSF="CHEM, HEM, TOX, RIA, SER, etc." D WRIT1 Q | 
|---|
|  | 59 | I LRSB="CY" S LRD1(0)=$G(^LR(LRD0,"CY",LRD1,0)),LRSF="CYTOPATHOLOGY" D WRIT1 Q | 
|---|
|  | 60 | I LRSB="EM" S LRD1(0)=$G(^LR(LRD0,"EM",LRD1,0)),LRSF="EM" D WRIT1 Q | 
|---|
|  | 61 | I LRSB="MI" S LRD1(0)=$G(^LR(LRD0,"MI",LRD1,0)),LRSF="MICROBIOLOGY" D WRIT1 Q | 
|---|
|  | 62 | I LRSB="SP" S LRD1(0)=$G(^LR(LRD0,"SP",LRD1,0)),LRSF="SURGICAL PATHOLOGY" D WRIT1 Q | 
|---|
|  | 63 | Q | 
|---|
|  | 64 | ; | 
|---|
|  | 65 | 11 ; | 
|---|
|  | 66 | Q:'$D(^XTMP("LR52",LRFILE,LRJOB,LRD0,LRSB)) | 
|---|
|  | 67 | S LRFLD=$O(^XTMP("LR52",LRFILE,LRJOB,LRD0,LRSB,0)),LRVL=$G(^(LRFLD)) | 
|---|
|  | 68 | I LRFLD["," S LRTIT=$P($G(@("^DD("_LRFLD_",0)")),U) | 
|---|
|  | 69 | I LRFLD'["," S LRTIT=$P($G(@("^DD("_$P(LRFILE,"-",2)_","_LRFLD_",0)")),U) | 
|---|
|  | 70 | I ($Y+10)>IOSL D HEAD^LRARNPX0(LRFILE) | 
|---|
|  | 71 | W !!!,"The value ("_+LRVL_") """_$P(LRVL,U,2)_""",",!,"in field "_LRTIT_", could not be repointed.",!,"This occured in: ",LRD0 | 
|---|
|  | 72 | Q | 
|---|
|  | 73 | WRIT1 ; | 
|---|
|  | 74 | I ($Y+10)>IOSL D HEAD^LRARNPX0(LRFILE) | 
|---|
|  | 75 | W !!!,"The value ("_+LRVL_") """_$P(LRVL,U,2)_""",",!,"in field "_LRTIT_", could not be repointed.",!,"This occured in: ",LRD0,!,"The "_LRSF_": subfile of """,LRSB,"""",?54,"entry: "_LRD1 | 
|---|
|  | 76 | Q | 
|---|
|  | 77 | ; | 
|---|
|  | 78 | REQUE ; reque task to print out exceptions | 
|---|
|  | 79 | N I | 
|---|
|  | 80 | S ZTIO=LRIO,ZTDESC="Requeue of exception report FILE 63 conversion JOB "_LRJOB,ZTDTH=$H,ZTRTN="REENT^LRARNPX1" | 
|---|
|  | 81 | F I="LRFILE","LRJOB","LRST","LRAC","LRTSK" S ZTSAVE(I)="" | 
|---|
|  | 82 | D ^%ZTLOAD Q | 
|---|