| [613] | 1 | VAQLED07 ;ALB/JFP,JRP - DISPLAY MINIMAL DATA/ADD NEW PATIENT ;01MAR93 [ 12/04/96  9:23 AM ] | 
|---|
|  | 2 | ;;1.5;PATIENT DATA EXCHANGE;**13,22,23,43**;NOV 17, 1993 | 
|---|
|  | 3 | EP ; -- Main entry point for the list processor | 
|---|
|  | 4 | ;    Note: sets flag 'VAQADFL' if required elements are blank | 
|---|
|  | 5 | ; | 
|---|
|  | 6 | K ^TMP("VAQD1",$J),^TMP("VAQDIS",$J) | 
|---|
|  | 7 | S (VAQADFL,VALMCNT)=0 | 
|---|
|  | 8 | ; | 
|---|
|  | 9 | EXTR ; -- Extract PDX minimal data | 
|---|
|  | 10 | S DFN=DFNTR | 
|---|
|  | 11 | S ROOT="^TMP(""VAQDIS"",$J)" | 
|---|
|  | 12 | S SEGPTR=$O(^VAT(394.71,"C","PDX*MIN","")) | 
|---|
|  | 13 | S VAQIGNC=1 ; -- turns of encryption | 
|---|
|  | 14 | S X=$$SEGEXT^VAQUPD1(DFN,SEGPTR,ROOT) | 
|---|
|  | 15 | I +X=-1 W !,"Extract not successful...Error: "_$P(X,U,2) D PAUSE^VALM1 QUIT | 
|---|
|  | 16 | ; -- extraction sucessful,check for missing data | 
|---|
|  | 17 | D CHKNULL | 
|---|
|  | 18 | I VAQADFL=1 D  Q | 
|---|
|  | 19 | .S VAQST="** Unable to load patient...required elements missing" | 
|---|
|  | 20 | .D EN^VALM("VAQ DIS MIN NUPD") ; -- Protocol = VAQ DIS1 (MENU) | 
|---|
|  | 21 | S VAQST="** <AP> attempt to add new patient or <RETURN> to exit" | 
|---|
|  | 22 | D EN^VALM("VAQ DIS MIN UPD") ; -- protocol = VAQ PDX7 (MENU) | 
|---|
|  | 23 | QUIT | 
|---|
|  | 24 | ; | 
|---|
|  | 25 | INIT ; -- Builds array of minimal data for the patient entered (DFN) | 
|---|
|  | 26 | S XTRCT=ROOT | 
|---|
|  | 27 | S ROOT="^TMP(""VAQD1"",$J)" | 
|---|
|  | 28 | S (OFFSET,DSP)=0 | 
|---|
|  | 29 | S X=$$DISPMIN^VAQDIS21(XTRCT,SEGPTR,ROOT,OFFSET,DSP) | 
|---|
|  | 30 | I +X=-1 S MSG="Display load not successful...Error: "_$P(X,U,2) D ERRMSG QUIT | 
|---|
|  | 31 | S VALMCNT=+X-1 | 
|---|
|  | 32 | D DISMSG | 
|---|
|  | 33 | K VALMBCK | 
|---|
|  | 34 | QUIT | 
|---|
|  | 35 | ; | 
|---|
|  | 36 | HD ; -- Make header line for list processor | 
|---|
|  | 37 | D HD1^VAQEXT02 QUIT | 
|---|
|  | 38 | ; | 
|---|
|  | 39 | ADD ; -- Adds new patient to local data base | 
|---|
|  | 40 | D CLEAR^VALM1 | 
|---|
|  | 41 | W !,"Please wait while information on ",$G(^TMP("VAQDIS",$J,"VALUE",2,.01,0))," is added",! | 
|---|
|  | 42 | I $G(^TMP("VAQDIS",$J,"VALUE",2,.09,0))'["P",$O(^DPT("SSN",$G(^TMP("VAQDIS",$J,"VALUE",2,.09,0)),"")) D  Q | 
|---|
|  | 43 | . W !!,$C(7),"** Patient not added, SSN in use by existing patient" | 
|---|
|  | 44 | . W ! | 
|---|
|  | 45 | . D TRANEX | 
|---|
|  | 46 | S DIC="^DPT(" | 
|---|
|  | 47 | S DIC(0)="EL" | 
|---|
|  | 48 | S DLAYGO=2 | 
|---|
|  | 49 | S X=$G(^TMP("VAQDIS",$J,"VALUE",2,.01,0)) | 
|---|
|  | 50 | S DIC("DR")=".03///"_$G(^TMP("VAQDIS",$J,"VALUE",2,.03,0)) | 
|---|
|  | 51 | F I=.09,391,1901 S DIC("DR")=DIC("DR")_";"_I_"///"_$G(^TMP("VAQDIS",$J,"VALUE",2,I,0)) | 
|---|
|  | 52 | K DD,D0 D FILE^DICN K DIC,DLAYGO | 
|---|
|  | 53 | I $P(Y,U,3)'=1 W !!,$C(7),"** Patient not added",! D TRANEX QUIT | 
|---|
|  | 54 | ; | 
|---|
|  | 55 | ; -- Update workload file (new patient) | 
|---|
|  | 56 | D WORKLD | 
|---|
|  | 57 | ; -- Add rest of information for stub" | 
|---|
|  | 58 | S VAQSTUB=+Y | 
|---|
|  | 59 | S LOCKFLE=$G(^DIC(2,0,"GL")) | 
|---|
|  | 60 | L +(@(LOCKFLE_VAQSTUB_")")):60 | 
|---|
|  | 61 | I ('$T) W !,"Could not edit entry...record locked" K LOCKFLE QUIT | 
|---|
|  | 62 | F FLD=.02,.05,.08,.301,.302,.361,.323,.111,.112,.113,.114,.115,.1112,.117 D LOAD | 
|---|
|  | 63 | ; -- load temporary address information, if active | 
|---|
|  | 64 | D TMPADDR QUIT | 
|---|
|  | 65 | L -(@(LOCKFLE_VAQSTUB_")")) K LOCKFLE | 
|---|
|  | 66 | W !,"** PDX minimal information on ",$G(^TMP("VAQDIS",$J,"VALUE",2,.01,0))," has been added" | 
|---|
|  | 67 | D TRANEX | 
|---|
|  | 68 | D EP^VAQLED02 | 
|---|
|  | 69 | K VALMBCK | 
|---|
|  | 70 | QUIT | 
|---|
|  | 71 | ; | 
|---|
|  | 72 | LOAD ; -- Loads fields to patient file | 
|---|
|  | 73 | S DIE=2,(DA,DFNPT)=VAQSTUB | 
|---|
|  | 74 | S DR=FLD_"///^S X=$G(^TMP(""VAQDIS"",$J,""VALUE"",2,FLD,0))" | 
|---|
|  | 75 | D ^DIE K DIE,DA,DR | 
|---|
|  | 76 | I ($D(Y)#2) W ?10,"- ",$P(^DD(2,FLD,0),U,1),?40," could not be added",! | 
|---|
|  | 77 | QUIT | 
|---|
|  | 78 | ; | 
|---|
|  | 79 | TMPADDR ; -- Checks to see if temporary address dates are active and flag set | 
|---|
|  | 80 | ; -- active flag | 
|---|
|  | 81 | I $G(^TMP("VAQDIS",$J,"VALUE",2,.12105,0))="Y" QUIT  ;strt dte | 
|---|
|  | 82 | I $G(^TMP("VAQDIS",$J,"VALUE",2,.1217,0))'<DT QUIT  ;strt dte | 
|---|
|  | 83 | I $G(^TMP("VAQDIS",$J,"VALUE",2,.1218,0))'>DT QUIT  ;end dte | 
|---|
|  | 84 | ; -- Load temporary address fields | 
|---|
|  | 85 | F FLD=.12105,.1211,.12111,.12112,.1212,.1213,.1214,.1215,.12112,.1217,.1218,.1219 D LOAD | 
|---|
|  | 86 | QUIT | 
|---|
|  | 87 | ; | 
|---|
|  | 88 | ERRMSG ; -- Displays error message | 
|---|
|  | 89 | S X=$$SETSTR^VALM1(" ","",1,79) D TMP | 
|---|
|  | 90 | S X=$$SETSTR^VALM1(MSG,"",1,80) D TMP | 
|---|
|  | 91 | S VALMBCK="Q" | 
|---|
|  | 92 | QUIT | 
|---|
|  | 93 | ; | 
|---|
|  | 94 | DISMSG ; -- Display status message | 
|---|
|  | 95 | S X=$$SETSTR^VALM1(VAQST,"",1,79) D TMP | 
|---|
|  | 96 | K VAQLN,VAQST | 
|---|
|  | 97 | QUIT | 
|---|
|  | 98 | ; | 
|---|
|  | 99 | TMP ; -- Set the array used by list processor | 
|---|
|  | 100 | S VALMCNT=VALMCNT+1 | 
|---|
|  | 101 | S ^TMP("VAQD1",$J,VALMCNT,0)=$E(X,1,79) | 
|---|
|  | 102 | QUIT | 
|---|
|  | 103 | ; | 
|---|
|  | 104 | CHKNULL ; -- Sets missing data flag if it finds a required field null | 
|---|
|  | 105 | ; Added quit condition.  NOIS ISD-0495-40199 | 
|---|
|  | 106 | S FLD="" | 
|---|
|  | 107 | F FLD=.01,.02,.03,.05,.08,.09,.111,.114,.115,.1112,.117,.323,.361,391,1901 Q:(VAQADFL=1)  D | 
|---|
|  | 108 | .S VAQDATA=$G(^TMP("VAQDIS",$J,"VALUE",2,FLD,0)) | 
|---|
|  | 109 | .S:VAQDATA="" VAQADFL=1 | 
|---|
|  | 110 | I VAQADFL=0 D | 
|---|
|  | 111 | .S:($G(^TMP("VAQDIS",$J,"VALUE",2,.302,0))=""&($G(^TMP("VAQDIS",$J,"VALUE",2,.301,0))'="NO")) VAQADFL=0 | 
|---|
|  | 112 | K FLD,VAQDATA | 
|---|
|  | 113 | QUIT | 
|---|
|  | 114 | ; | 
|---|
|  | 115 | TRANEX ; -- Transaction exit | 
|---|
|  | 116 | D PAUSE^VALM1 | 
|---|
|  | 117 | S VALMBCK="Q" | 
|---|
|  | 118 | QUIT | 
|---|
|  | 119 | ; | 
|---|
|  | 120 | WORKLD ; -- Updates work load file | 
|---|
|  | 121 | S X=$$WORKDONE^VAQADS01("NEW",DFNTR,$G(DUZ)) | 
|---|
|  | 122 | I +X<0  W !,"Error updating work loadfile (NEW)... "_$P(X,U,2) | 
|---|
|  | 123 | I $P($G(^VAT(394.61,DFNTR,0)),U,4)=0 QUIT | 
|---|
|  | 124 | S X=$$WORKDONE^VAQADS01("SNSTVE",DFNTR,$G(DUZ)) | 
|---|
|  | 125 | I X<0 W !,"Error updating workload file (SNSTVE)... "_$P(X,U,2) | 
|---|
|  | 126 | QUIT | 
|---|
|  | 127 | ; | 
|---|
|  | 128 | EXIT ; -- Note: The list processor cleans up its own variables. | 
|---|
|  | 129 | ;          All other variables cleaned up here. | 
|---|
|  | 130 | ; | 
|---|
|  | 131 | K ^TMP("VAQD1",$J),^TMP("VAQDIS",$J) | 
|---|
|  | 132 | K VAQADFL,VAQSTUB,VAQIGNC | 
|---|
|  | 133 | K VALMCNT,ROOT,SEGPTR,X,MSG,XTRCT,OFFSET,DSP | 
|---|
|  | 134 | Q | 
|---|
|  | 135 | ; | 
|---|
|  | 136 | END ; -- End of code | 
|---|
|  | 137 | QUIT | 
|---|