| [613] | 1 | RMIMV ;WPB/CAM Version check - dup check - server option - consult screen | 
|---|
|  | 2 | ;;1.0;FUNCTIONAL INDEPENDENCE;**4**;Apr 15, 2003 | 
|---|
|  | 3 | ;VERSION WILL BE IN GUI FORMAT - "1.0.0.T4" | 
|---|
|  | 4 | ;12/01/2004 KAM RMIM*1*4 Modify code to match Consult/Request Tracking | 
|---|
|  | 5 | ;               permission verification for consult completion | 
|---|
|  | 6 | ;12/27/2004 KAM RMIM*1*4 DBIA #4576 was approved to handle the API call | 
|---|
|  | 7 | ;               to $$VALID^GMRCAU | 
|---|
|  | 8 | RPC(RESULTS,NAME,VERSION) ;Main RPC entry | 
|---|
|  | 9 | S RESULTS(0)=0 | 
|---|
|  | 10 | D FIND^DIC(19,"",1,"X",NAME,1,,,,"RMIMV") | 
|---|
|  | 11 | I 'RMIMV("DILIST",0) Q | 
|---|
|  | 12 | S VAL=RMIMV("DILIST","ID",1,1) | 
|---|
|  | 13 | S VAL=$P(VAL,"version ",2) | 
|---|
|  | 14 | I VAL'=VERSION Q | 
|---|
|  | 15 | S RESULTS(0)=1 | 
|---|
|  | 16 | Q | 
|---|
|  | 17 | DUP(FLAG,RMIMD) ;Check to see if duplicate record | 
|---|
|  | 18 | S DFN=$P(RMIMD,U),FAC=$P(RMIMD,U,2),IMP=$P(RMIMD,U,3),ADMIT=$P(RMIMD,U,4),ONSET=$P(RMIMD,U,5) | 
|---|
|  | 19 | S X=ADMIT D ^%DT S ADMIT=Y | 
|---|
|  | 20 | S X=ONSET D ^%DT S ONSET=Y | 
|---|
|  | 21 | S FLAG(0)=0 | 
|---|
|  | 22 | F AA=0:0 S AA=$O(^RMIM(783,"DFN",DFN,AA)) Q:AA=""  D | 
|---|
|  | 23 | .S FFAC=$P(^RMIM(783,AA,0),U,6) | 
|---|
|  | 24 | .S FIMP=$P(^RMIM(783,AA,0),U,8) | 
|---|
|  | 25 | .S FADM=$P(^RMIM(783,AA,0),U,10) | 
|---|
|  | 26 | .S FONS=$P(^RMIM(783,AA,0),U,9) | 
|---|
|  | 27 | .Q:FAC'=FFAC | 
|---|
|  | 28 | .Q:FIMP'=FIMP | 
|---|
|  | 29 | .Q:ADMIT'=FADM | 
|---|
|  | 30 | .Q:ONSET'=FONS | 
|---|
|  | 31 | .S FLAG(0)=1 | 
|---|
|  | 32 | Q | 
|---|
|  | 33 | CON(ORY,ORPT,ORSDT,OREDT,ORSERV,ORSTATUS) ;Consult list only users service | 
|---|
|  | 34 | F AA=0:0 S AA=$O(^GMR(123.5,AA)) Q:'AA  D | 
|---|
|  | 35 | .; | 
|---|
|  | 36 | .;12/06/2004 KAM Added Next Line for RMIM*1*4 | 
|---|
|  | 37 | .I $$VALID^GMRCAU(AA) S SERV(AA)="" | 
|---|
|  | 38 | .; | 
|---|
|  | 39 | F AA=0:0 S AA=$O(SERV(AA)) Q:AA=""  D | 
|---|
|  | 40 | .D LIST^ORQQCN(.ORY,ORPT,,,AA,ORSTATUS) | 
|---|
|  | 41 | .F CC=0:0 S CC=$O(^TMP("ORQQCN",$J,"CS",CC)) Q:CC=""  D | 
|---|
|  | 42 | ..S IEN=$P(^TMP("ORQQCN",$J,"CS",CC,0),U) | 
|---|
|  | 43 | ..Q:+IEN=0 | 
|---|
|  | 44 | ..S ^TMP("ORQQCN",$J,"AS",IEN,0)=^TMP("ORQQCN",$J,"CS",CC,0) | 
|---|
|  | 45 | .K ^TMP("ORQQCN",$J,"CS") | 
|---|
|  | 46 | M ^TMP("ORQQCN",$J,"CS")=^TMP("ORQQCN",$J,"AS") | 
|---|
|  | 47 | K ^TMP("ORQQCN",$J,"AS") | 
|---|
|  | 48 | Q | 
|---|
|  | 49 | SER ;Server routine to populate the status and error desc if error status | 
|---|
|  | 50 | ;Read SSN to get DFN and use DFN xref to find records for this patient | 
|---|
|  | 51 | S (FAC,IMP,ONSET,ADMIT)="" | 
|---|
|  | 52 | S (EFAC,EIMP,EONSET,EADMIT)="" | 
|---|
|  | 53 | S RMIMFG=0 | 
|---|
|  | 54 | S REC=^XMB(3.9,XQMSG,2,2,0) | 
|---|
|  | 55 | S ERR="",COUNT=0 | 
|---|
|  | 56 | F EE=3:0 S EE=$O(^XMB(3.9,XQMSG,2,EE)) Q:EE=""!(COUNT>3)  D | 
|---|
|  | 57 | .Q:^XMB(3.9,XQMSG,2,EE,0)["NNNN" | 
|---|
|  | 58 | .W !,^XMB(3.9,XQMSG,2,EE,0) | 
|---|
|  | 59 | .I ^XMB(3.9,XQMSG,2,EE,0)'="" D | 
|---|
|  | 60 | ..S COUNT=COUNT+1 | 
|---|
|  | 61 | ..S ERR=ERR_^XMB(3.9,XQMSG,2,EE,0) | 
|---|
|  | 62 | ;After receiving messages need to code for multiple errors | 
|---|
|  | 63 | ;Greater then 4 needs a message sent to coordinators | 
|---|
|  | 64 | I COUNT>3 D | 
|---|
|  | 65 | .S ERR="  ERROR: MULTIPLE IDENTIFIED - COORDINATOR NEEDS TO REVIEW ALL FIELDS" | 
|---|
|  | 66 | F AA=30:1 S REC2=$E(REC,AA,132) Q:+REC2 | 
|---|
|  | 67 | S REC3=$P(REC2,"    ",2) | 
|---|
|  | 68 | F AA=1:1 S:$E(REC3,1)=" " REC3=$E(REC3,2,80) Q:$E(REC3,1)'=" " | 
|---|
|  | 69 | S SSN=$E(REC2,1,9) I SSN="" S EMSG="SSN SENT FROM AUSTIN IS NOT A VALID SSN" D SEND Q | 
|---|
|  | 70 | S DFN="",DFN=$O(^DPT("SSN",SSN,DFN)) W !,DFN | 
|---|
|  | 71 | I DFN="" S EMSG="SSN SENT FROM AUSTIN IS NOT A VALID SSN" D SEND Q  ;Need to send message if could not find ssn | 
|---|
|  | 72 | S FAC=$P(REC2,"  ",3),IMP=$P(REC2,"  ",4) | 
|---|
|  | 73 | F AA=1:1 S:$E(IMP,1)=" " IMP=$E(IMP,2,10) Q:$E(IMP,1)'=" " | 
|---|
|  | 74 | S ONSET=$P(REC3,"  "),ADMIT=$P(REC3,"  ",2) | 
|---|
|  | 75 | S X=ONSET D ^%DT Q:Y=-1  S ONSET=Y | 
|---|
|  | 76 | S X=ADMIT D ^%DT Q:Y=-1  S ADMIT=Y | 
|---|
|  | 77 | S STA=$P(REC3,"  ",3) | 
|---|
|  | 78 | S FLAG=0 | 
|---|
|  | 79 | F AA=0:0 S AA=$O(^RMIM(783,"DFN",DFN,AA)) Q:AA=""!(FLAG=1)  D | 
|---|
|  | 80 | .S FIMP=$P(^RMIM(783,AA,0),"^",8) I FIMP'=IMP S RMIMFG=1,EIMP=IMP,EACK=AA,EMSG="IMP DOES NOT MATCH" Q | 
|---|
|  | 81 | .S FONSET=$P(^RMIM(783,AA,0),"^",9) I FONSET'=ONSET S RMIMFG=1,EONSET=ONSET,EACK=AA,EMSG="ONSET DOES NOT MATCH" Q | 
|---|
|  | 82 | .S FADMIT=$P(^RMIM(783,AA,0),"^",10) I FADMIT'=ADMIT S RMIMFG=1,EADMIT=ADMIT,EACK=AA,EMSG="ADMIT DOES NOT MATCH" Q | 
|---|
|  | 83 | .S FFAC=$P(^RMIM(783,AA,0),"^",6) I FFAC'=FAC S RMIMFG=1,EFAC=FAC,EACK=AA,EMSG="FAC DOES NOT MATCH" Q | 
|---|
|  | 84 | .I STA["ACK" S STA=0 | 
|---|
|  | 85 | .I STA["ERR" S STA=1 | 
|---|
|  | 86 | .S ^RMIM(783,AA,9)=STA_"^"_ERR S FLAG=1 | 
|---|
|  | 87 | I FLAG=1 Q | 
|---|
|  | 88 | D SEND | 
|---|
|  | 89 | Q | 
|---|
|  | 90 | SEND ;Message to coordinators data from Austin did not match RMIM file | 
|---|
|  | 91 | S X=EONSET D DD^%DT Q:Y=-1  S EONSET=Y | 
|---|
|  | 92 | S X=EADMIT D DD^%DT Q:Y=-1  S EADMIT=Y | 
|---|
|  | 93 | S AS="" S:$D(^RMIM(783,EACK,9)) AS=$P(^RMIM(783,EACK,9),U) | 
|---|
|  | 94 | I AS=0 S EACK="ACK" | 
|---|
|  | 95 | I AS=1 S EACK="ERR" | 
|---|
|  | 96 | S TX(1,0)="Please check FSOD in Austin to view FIM transmission." | 
|---|
|  | 97 | S TX(2,0)="This FIM patient record did not match data transmitted in our file" | 
|---|
|  | 98 | S TX(3,0)="(783) therefore the Austin Status field could not get updated." | 
|---|
|  | 99 | S TX(4,0)="If FSOD record looks ok in Austin, then have IRM manually update the" | 
|---|
|  | 100 | S TX(5,0)="record, which best fits, this description to reflect Austin Status." | 
|---|
|  | 101 | S TX(6,0)="" | 
|---|
|  | 102 | S TX(16,0)="SSN: "_SSN | 
|---|
|  | 103 | S TX(17,0)="FACILITY: "_FAC | 
|---|
|  | 104 | S TX(18,0)="IMPAIRMENT CODE: "_IMP | 
|---|
|  | 105 | S TX(19,0)="ADMIT DATE: "_EADMIT | 
|---|
|  | 106 | S TX(20,0)="ONSET DATE: "_EONSET | 
|---|
|  | 107 | S TX(21,0)="Austin Status:  "_EACK | 
|---|
|  | 108 | S TX(22,0)="" | 
|---|
|  | 109 | S TX(23,0)="Below is the data that was returned by FSOD Austin" | 
|---|
|  | 110 | S TX(24,0)="Message number "_XQMSG | 
|---|
|  | 111 | S TX(25,0)=^XMB(3.9,XQMSG,2,2,0) | 
|---|
|  | 112 | S (XMDUN,XMDUZ)="FSOD TRANSMISSION",XMSUB="Unidentified Acknowledgement from Austin" | 
|---|
|  | 113 | S RMIMMG=$P(^RMIM(783.9,1,0),U,3),RMIMMG=$P(^XMB(3.8,RMIMMG,0),U) | 
|---|
|  | 114 | S RMIMMG="G."_RMIMMG | 
|---|
|  | 115 | S XMTEXT="TX(",XMY(RMIMMG)="" D ^XMD | 
|---|
|  | 116 | Q | 
|---|
|  | 117 | IT ;Resend all records to Austin | 
|---|
|  | 118 | W !,"You will be setting the cross-ref to transmit all records to Austin" | 
|---|
|  | 119 | W !,"Are you sure you want to continue?" | 
|---|
|  | 120 | S DIR(0)="Y",DIR("B")="YES" D ^DIR Q:$D(DIRUT)!(Y=0) | 
|---|
|  | 121 | S RMIM=0 F  S RMIM=$O(^RMIM(783,RMIM)) Q:'RMIM  S X=$G(^(RMIM,0)) D | 
|---|
|  | 122 | .S ^RMIM(783,"ATRAN",1,RMIM)="",$P(X,U,15)=1 | 
|---|
|  | 123 | .S ^RMIM(783,RMIM,0)=X | 
|---|
|  | 124 | W !,"Cross-ref set to retransmit all records to Austin" | 
|---|
|  | 125 | Q | 
|---|