1 | RGADTP3 ;BIR/CMC-RGADTP2 - CONTINUED ;10/30/02 10:04
|
---|
2 | ;;1.0;CLINICAL INFO RESOURCE NETWORK;**48**;30 Apr 99;Build 3
|
---|
3 | ;
|
---|
4 | ;MOVED CHKPVT AND DIFF FROM RGADTP2 DUE TO ROUTINE SIZE ISSUE
|
---|
5 | Q
|
---|
6 | CHKPVT(ARRAY) ;CHECKS TO SEE IF OUTSTANDING IDENTITY EDIT IS WAITING TO BE SENT IN THE ADT/HL7 PIVOT FILE
|
---|
7 | ;**44 CREATED - ARRAY CONTAINS THE ARRAY ELEMENTS NEEDED TO FIND THE PATIENT IN THE ADT/HL7 PIVOT FILE
|
---|
8 | ;RETURNED IS -1^EDIT PENDING IN PIVOT FILE OR 0 IF THERE ISN'T ONE
|
---|
9 | I '$D(^VAT(391.71,"C",ARRAY("DFN"))) Q 0
|
---|
10 | N PIV,FIELDS
|
---|
11 | S PIV=$O(^VAT(391.71,"C",ARRAY("DFN"),"A"),-1) ;get last entry in the pivot file for this patient
|
---|
12 | I '$D(^VAT(391.71,"AXMIT",4,PIV))&('$D(^VAT(391.71,"AXMIT",3,PIV))) Q 0
|
---|
13 | S FIELDS=$$GET1^DIQ(391.71,PIV_",",2.1,"I")
|
---|
14 | I FIELDS[".01;"!(FIELDS[".02;")!(FIELDS[".03;")!(FIELDS[".09;")!(FIELDS[".0906;")!(FIELDS[".2403;")!(FIELDS["994;") Q "-1^DFN "_ARRAY("DFN")_": Edits made to identity fields waiting to come to MPI, MPI update not processed as of yet."
|
---|
15 | Q 0
|
---|
16 | ;
|
---|
17 | DIFF(ARRAY,RGRSDFN,DR,ARAY) ; are there fields to update? **47
|
---|
18 | N NAME,SSN,PDOB,SEX,MMN,OLDNAME,OLDHLNAM,OLDMMN,OLDHLMMN,HLNAME,HLMMN,SSNV,MBI,PSNR
|
---|
19 | S DR="",NAME=$$GET1^DIQ(2,+RGRSDFN_",",.01,"I"),HLNAME=ARRAY("NAME")
|
---|
20 | ;**48 remove name standardization check
|
---|
21 | ;D STDNAME^XLFNAME(.NAME,"F",.OLDNAME) S HLNAME=ARRAY("NAME") D STDNAME^XLFNAME(.HLNAME,"F",.OLDHLNAM)
|
---|
22 | I NAME'=$G(HLNAME) S DR=DR_".01;",ARAY(2,.01)=ARRAY("NAME")
|
---|
23 | S PDOB=$$GET1^DIQ(2,+RGRSDFN_",",.03,"I") I PDOB'=ARRAY("MPIDOB") S DR=DR_".03;",ARAY(2,.03)=ARRAY("MPIDOB")
|
---|
24 | S SSN=$$GET1^DIQ(2,+RGRSDFN_",",.09,"I") D
|
---|
25 | .I SSN["P",ARRAY("SSN")=""!(ARRAY("SSN")="@") Q
|
---|
26 | .; ^ treat pseudos and null/@ as the same
|
---|
27 | .; **47 if incoming SSN value is null/@ and existing SSN isn't a pseudo create a new pseudo SSN
|
---|
28 | .I SSN'["P" I ARRAY("SSN")="@"!(ARRAY("SSN")="") S ARRAY("SSN")="P"
|
---|
29 | .I SSN'=ARRAY("SSN"),ARRAY("SSN")'="" S DR=DR_".09;",ARAY(2,.09)=ARRAY("SSN")
|
---|
30 | S SEX=$$GET1^DIQ(2,+RGRSDFN_",",.02,"I") D
|
---|
31 | .I SEX=""&(ARRAY("SEX")="@") Q
|
---|
32 | .; ^ treat null and @ as same
|
---|
33 | .I SEX'=ARRAY("SEX") S DR=DR_".02;",ARAY(2,.02)=ARRAY("SEX")
|
---|
34 | S SSNV=$$GET1^DIQ(2,+RGRSDFN_",",.0907,"I") I SSNV="" S SSNV="@"
|
---|
35 | ;if SSN VERIFICATION STATUS field has been added to the DD then attempt to set it
|
---|
36 | N ERROR,LABEL D FIELD^DID(2,.0907,"","LABEL","LABEL","ERROR") I '$D(ERROR("DIERR"))&$D(LABEL("LABEL")) D
|
---|
37 | .I SSNV'=ARRAY(.0907) S ARAY(2,.0907)=$G(ARRAY(.0907)),DR=DR_".0907;"
|
---|
38 | S PSNR=$$GET1^DIQ(2,+RGRSDFN_",",.0906,"I") I PSNR="" S PSNR="@"
|
---|
39 | ;if Pseudo SSN Reason field has been added to the DD then attempt to set it
|
---|
40 | N ERROR,LABEL D FIELD^DID(2,.0906,"","LABEL","LABEL","ERROR") I '$D(ERROR("DIERR"))&$D(LABEL("LABEL")) D
|
---|
41 | .I PSNR'=ARRAY(.0906) S ARAY(2,.0906)=$G(ARRAY(.0906)),DR=DR_".0906;"
|
---|
42 | S MBI=$$GET1^DIQ(2,+RGRSDFN_",",994,"I") I MBI="" S MBI="@"
|
---|
43 | I MBI="@"&(ARRAY("MBI")="") Q
|
---|
44 | ; ^ treat @ and null as the same
|
---|
45 | I MBI'=ARRAY("MBI") S DR=DR_"994;",ARAY(2,994)=ARRAY("MBI")
|
---|
46 | S MMN=$$GET1^DIQ(2,+RGRSDFN_",",.2403,"I") I MMN="" S MMN="@"
|
---|
47 | D STDNAME^XLFNAME(.MMN,"F",.OLDMMN) S HLMMN=ARRAY("MMN") D STDNAME^XLFNAME(.HLMMN,"F",.OLDHLMMN)
|
---|
48 | I MMN="@"&($G(HLMMN)="") Q
|
---|
49 | ; ^ treat @ and null as same
|
---|
50 | I MMN'=$G(HLMMN) S DR=DR_".2403;",ARAY(2,.2403)=ARRAY("MMN")
|
---|
51 | I $D(ARRAY("ALIAS")) S DR=DR_"1;"
|
---|
52 | Q
|
---|