| [613] | 1 | VAQLED03 ;ALB/JFP,JRP - PDX, DISPLAY POSSIBLE MATCHES, SCREEN;01MAR93
 | 
|---|
 | 2 |  ;;1.5;PATIENT DATA EXCHANGE;**6,10**;NOV 17, 1993
 | 
|---|
 | 3 | EP ; -- Main entry point for the list processor
 | 
|---|
 | 4 |  K DFNARR
 | 
|---|
 | 5 |  W !!,"Checking for potential duplicates and matches of remote patient "
 | 
|---|
 | 6 |  S VAQDFN=$$GETDFN^VAQUTL97(VAQPTNM,1) I +VAQDFN>0 S DFNARR(VAQDFN)=""
 | 
|---|
 | 7 |  S VAQDFN=$$GETDFN^VAQUTL97(VAQISSN,1) I +VAQDFN>0 S DFNARR(VAQDFN)=""
 | 
|---|
 | 8 |  ;
 | 
|---|
 | 9 |  N DOB,SSN,DPTNM,DPTKS,DPTKD
 | 
|---|
 | 10 |  S DPTNM=VAQPTNM,SSN=VAQISSN
 | 
|---|
 | 11 |  S DOB=$S(VAQIDOB'="":VAQIDOB,1:" ")
 | 
|---|
 | 12 |  S (DPTKS,DPTKD)=0
 | 
|---|
 | 13 |  D ^DPTDUP ; -- Duplicate checker
 | 
|---|
 | 14 |  I $D(DPTD)&(DPTD>0) S VAQDFN="" F  S VAQDFN=$O(DPTD(VAQDFN))  Q:VAQDFN=""  S DFNARR(VAQDFN)=""
 | 
|---|
 | 15 |  I '$D(VAQCHK) D EN^VALM("VAQ MATCHES PDX8") K DPTD
 | 
|---|
 | 16 |  Q
 | 
|---|
 | 17 |  ;
 | 
|---|
 | 18 | INIT ; -- Builds array of possible matches
 | 
|---|
 | 19 |  K ^TMP("VAQL3",$J),^TMP("VAQIDX",$J)
 | 
|---|
 | 20 |  S DFN="",(VAQECNT,VALMCNT)=0
 | 
|---|
 | 21 |  F  S DFN=$O(DPTD(DFN))  Q:DFN=""  D SETD
 | 
|---|
 | 22 |  I VAQECNT=0 D
 | 
|---|
 | 23 |  .S X=$$SETSTR^VALM1(" ","",1,79) D TMP
 | 
|---|
 | 24 |  .S X=$$SETSTR^VALM1(" ** No possible matches found for patient entered... ","",1,80) D TMP
 | 
|---|
 | 25 |  Q
 | 
|---|
 | 26 |  ;
 | 
|---|
 | 27 | SETD ; -- Set data for display in list processor
 | 
|---|
 | 28 |  S VAQECNT=VAQECNT+1
 | 
|---|
 | 29 |  D DEM^VADPT
 | 
|---|
 | 30 |  S X=$$SETFLD^VALM1(VAQECNT,"","ENTRY")
 | 
|---|
 | 31 |  S X=$$SETFLD^VALM1(VADM(1),X,"LOCAL PATIENT NAME")
 | 
|---|
 | 32 |  S X=$$SETFLD^VALM1($P(VADM(2),U,2),X,"SSN")
 | 
|---|
 | 33 |  S VAERR=$$DOBFMT^VAQUTL99($P(VADM(3),U,1))
 | 
|---|
 | 34 |  S X=$$SETFLD^VALM1(VAERR,X,"DOB")
 | 
|---|
 | 35 |  S X=$$SETFLD^VALM1(VA("PID"),X,"PID")
 | 
|---|
 | 36 |  D TMP
 | 
|---|
 | 37 |  K VA,VADM,VAERR ; -- cleans up local variables set by vadpt call
 | 
|---|
 | 38 |  Q
 | 
|---|
 | 39 |  ;
 | 
|---|
 | 40 | TMP ; -- Set the array used by list processor
 | 
|---|
 | 41 |  S VALMCNT=VALMCNT+1
 | 
|---|
 | 42 |  S ^TMP("VAQL3",$J,VALMCNT,0)=$E(X,1,79)
 | 
|---|
 | 43 |  S ^TMP("VAQL3",$J,"IDX",VALMCNT,VAQECNT)=""
 | 
|---|
 | 44 |  S ^TMP("VAQIDX",$J,VAQECNT)=DFNTR_"^"_DFN
 | 
|---|
 | 45 |  Q
 | 
|---|
 | 46 |  ;
 | 
|---|
 | 47 | HD ; -- Make header line for list processor
 | 
|---|
 | 48 |  S VALMHDR(1)=$$INSERT^VAQUTL1("Remote Patient Name","",9)
 | 
|---|
 | 49 |  S VALMHDR(1)=$$INSERT^VAQUTL1("DOB",VALMHDR(1),41)
 | 
|---|
 | 50 |  S VALMHDR(1)=$$INSERT^VAQUTL1("SSN",VALMHDR(1),54)
 | 
|---|
 | 51 |  S VALMHDR(2)=$$INSERT^VAQUTL1(VAQPTNM,"",9)
 | 
|---|
 | 52 |  S VALMHDR(2)=$$INSERT^VAQUTL1(VAQEDOB,VALMHDR(2),41)
 | 
|---|
 | 53 |  S VALMHDR(2)=$$INSERT^VAQUTL1(VAQESSN,VALMHDR(2),54)
 | 
|---|
 | 54 |  S VALMHDR(3)=" "
 | 
|---|
 | 55 |  Q
 | 
|---|
 | 56 |  ;
 | 
|---|
 | 57 | SEL ; -- Select possible match
 | 
|---|
 | 58 |  D EN^VALM2($G(XQORNOD(0)),"S")
 | 
|---|
 | 59 |  Q:'$D(VALMY)
 | 
|---|
 | 60 |  S SDI=""
 | 
|---|
 | 61 |  S SDI=$O(VALMY(SDI))
 | 
|---|
 | 62 |  S SDAT=$G(^TMP("VAQIDX",$J,SDI))
 | 
|---|
 | 63 |  S DFNTR=$P(SDAT,U,1)
 | 
|---|
 | 64 |  S DFNPT=$P(SDAT,U,2)
 | 
|---|
 | 65 |  D MRGECHK
 | 
|---|
 | 66 |  S VAQBCK=1
 | 
|---|
 | 67 |  K VALMBCK
 | 
|---|
 | 68 |  Q
 | 
|---|
 | 69 |  ;
 | 
|---|
 | 70 | EXP ; -- Displays MAS minimal information from patient file (2)
 | 
|---|
 | 71 |  D EN^VALM2($G(XQORNOD(0)),"S")
 | 
|---|
 | 72 |  Q:'$D(VALMY)
 | 
|---|
 | 73 |  S SDI=""
 | 
|---|
 | 74 |  F  S SDI=$O(VALMY(SDI))  Q:SDI=""  D
 | 
|---|
 | 75 |  .S SDAT=$G(^TMP("VAQIDX",$J,SDI))
 | 
|---|
 | 76 |  .S DFN=$P(SDAT,U,2)
 | 
|---|
 | 77 |  .D PT^VAQDIS01 ; -- display local patient data
 | 
|---|
 | 78 |  S VALMBCK="R"
 | 
|---|
 | 79 |  Q
 | 
|---|
 | 80 |  ;
 | 
|---|
 | 81 | NEW ; -- Creates new patient in local database
 | 
|---|
 | 82 |  D ^VAQLED07
 | 
|---|
 | 83 |  K VALMBCK
 | 
|---|
 | 84 |  Q
 | 
|---|
 | 85 |  ;
 | 
|---|
 | 86 | EXIT ; -- Note: The list processor cleans up its own variables.
 | 
|---|
 | 87 |  ;          All other variables cleaned up here.
 | 
|---|
 | 88 |  ;
 | 
|---|
 | 89 |  K ^TMP("VAQL3",$J),^TMP("VAQIDX",$J),DFNARR
 | 
|---|
 | 90 |  K VAQECNT,DFN,DPTD,X,VALMY,SDI,SDAT
 | 
|---|
 | 91 |  Q
 | 
|---|
 | 92 |  ;
 | 
|---|
 | 93 | MRGECHK ;CHECK FOR EXACT MATCH BEFORE ALLOWING MERGE
 | 
|---|
 | 94 |  N TMP,LOCNAME,LOCSSN,LOCDOB,DIFF
 | 
|---|
 | 95 |  ;GET LOCAL PATIENT
 | 
|---|
 | 96 |  S TMP=$$PATINFO^VAQUTL1(DFNPT)
 | 
|---|
 | 97 |  S LOCNAME=$P(TMP,"^",1)
 | 
|---|
 | 98 |  S LOCSSN=$TR($P(TMP,"^",2),"-","")
 | 
|---|
 | 99 |  S LOCDOB=$$DATE^VAQUTL99($P(TMP,"^",3))
 | 
|---|
 | 100 |  S:(LOCDOB="-1") LOCDOB=""
 | 
|---|
 | 101 |  ;COMPARE AGAINST REMOTE PATIENT
 | 
|---|
 | 102 |  S DIFF=0
 | 
|---|
 | 103 |  S:(VAQPTNM'=LOCNAME) DIFF=DIFF+1
 | 
|---|
 | 104 |  S:(VAQISSN'=LOCSSN) DIFF=DIFF+2
 | 
|---|
 | 105 |  S:(VAQIDOB'=LOCDOB) DIFF=DIFF+4
 | 
|---|
 | 106 |  ;NO DIFFERENCES - MERGE ALLOWED
 | 
|---|
 | 107 |  I ('DIFF) D EP^VAQLED02 Q
 | 
|---|
 | 108 |  ;PRINT DIFFERENCES
 | 
|---|
 | 109 |  D CLEAR^VALM1
 | 
|---|
 | 110 |  S TMP="***** MERGING OF REMOTE PATIENT WITH LOCAL PATIENT NOT ALLOWED *****"
 | 
|---|
 | 111 |  S X=$$INSERT^VAQUTL1(TMP,"",(40-($L(TMP)/2)))
 | 
|---|
 | 112 |  W $C(7),X
 | 
|---|
 | 113 |  S TMP=""
 | 
|---|
 | 114 |  I (DIFF>3) S TMP="DATE OF BIRTH",DIFF=DIFF-4
 | 
|---|
 | 115 |  I (DIFF>1) S:(TMP'="") TMP=" and "_TMP S TMP="SOCIAL SECURITY NUMBER"_TMP,DIFF=DIFF-2
 | 
|---|
 | 116 |  I (DIFF) S:(TMP'="") TMP=" and "_TMP S TMP="NAME"_TMP
 | 
|---|
 | 117 |  S TMP="***** "_TMP_" do"_$S((TMP'[" and "):"es",1:"")_" not match *****"
 | 
|---|
 | 118 |  S X=$$INSERT^VAQUTL1(TMP,"",(40-($L(TMP)/2)))
 | 
|---|
 | 119 |  W !,X,$C(7)
 | 
|---|
 | 120 |  W !!,?22,"Name",?48,"SSN",?64,"DOB"
 | 
|---|
 | 121 |  S X=$$REPEAT^VAQUTL1("-",30)
 | 
|---|
 | 122 |  W !,?8,X,?43,$E(X,1,12),?60,$E(X,1,10)
 | 
|---|
 | 123 |  W !," Local: ",LOCNAME,?43,$$DASHSSN^VAQUTL99(LOCSSN),?60,$$DOBFMT^VAQUTL99(LOCDOB,0)
 | 
|---|
 | 124 |  W !,"Remote: ",VAQPTNM,?43,VAQESSN,?60,VAQEDOB
 | 
|---|
 | 125 |  W !!!
 | 
|---|
 | 126 |  W !,?3,"Pertinent patient data must match in order for the upload process"
 | 
|---|
 | 127 |  W !,?3,"to continue.  Local and remote patient should be verified using the"
 | 
|---|
 | 128 |  W !,?3,"appropriate procedures.  Once verified, the Load/Edit Patient Data"
 | 
|---|
 | 129 |  W !,?3,"option, which is found in the Registration Menu, should be used to"
 | 
|---|
 | 130 |  W !,?3,"correct the information."
 | 
|---|
 | 131 |  F X=$Y:1:(IOSL-5) W !
 | 
|---|
 | 132 |  D PAUSE^VALM1
 | 
|---|
 | 133 |  Q
 | 
|---|