SDES2GETREGS ;ALB/TJB,JAS,MCB,JAS - Get registration info JSON format ; July 31, 2026
;;5.3;SCHEDULING;**873,889,901,909,952**;AUG 13, 1993;Build 4
;;Per VHA Directive 6402, this routine should not be modified
; Documented API's and Integration Agreements
; -------------------------------------------
; Reference to PATIENT fields in ICRs: #1476, #7019, #7029, #7030, #10035
; Reference to SCHEDULED ADMISSION in ICR #4425
; Reference to DUZ^XUP is supported by IA #7487
;
Q
;
GETPATINFO(JSON,SDCONTEXT,SDPARAM) ;return basic reg info/demographics for given patient in JSON format
;Input Parameter:
; SDPARAM("PATIENT IEN") - Patient ID - Pointer to PATIENT file
;Returns:
; JSON formatted output
N RETURN,SDINFO,SDDFN,SDPATARR,SDDEMO,PRACE,PRACEN,PETH,PETHN,SDMHP,SDPCP,GAF,GAFR,SDZIP,SDDOD,ERRORS
; Next line to address leaks from other APIs
N PRFLIST,VA,YSZ,Z0
;
D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
I $D(ERRORS) S RETURN("Patient")="" M RETURN=ERRORS D BUILDJSON^SDES2JSON(.JSON,.RETURN) Q
I $G(SDCONTEXT("USER DUZ"))'="" N DUZ D DUZ^XUP(SDCONTEXT("USER DUZ"))
D VALIDATE(.ERRORS,.SDPARAM)
I $D(ERRORS) S RETURN("Patient")="" M RETURN=ERRORS D BUILDJSON^SDES2JSON(.JSON,.RETURN) Q
D GETDEMOGR(.RETURN,.SDCONTEXT,.SDPARAM)
D BUILDJSON^SDES2JSON(.JSON,.RETURN)
Q
;
VALIDATE(ERRORS,SDPARAM) ;validate input Parameter
D VALPATDFN^SDES2VAL2(.ERRORS,$G(SDPARAM("PATIENT IEN")),1,0)
Q
;
GETPREREGTIM(DFN) ;
N PREREGTIMIEN,PREREGTIM
S PREREGTIM=""
S PREREGTIMIEN=$O(^DGS(41.41,"B",DFN,"A"),-1)
I PREREGTIMIEN'="" D
. S PREREGTIM=$$FMTISO^SDAMUTDT($$GET1^DIQ(41.41,PREREGTIMIEN_",",1,"I"))
Q PREREGTIM
;
GETDEMOGR(SDINFO,SDCONTEXT,SDPARAM) ;
N PATIENTLIST,SDDEMO,DFN,RACELIST,ETHNLIST,SDFN,FIELDS,PCE,SDPCE,SDPCEM,CAT8GROUPFLG,SDMHP,MHTC,SDPCP,SDSENSITIVE,SDSECURITY
S DFN=SDPARAM("PATIENT IEN"),SDFN=DFN_","
D SENSITIVE^SDES2UTIL(.SDSENSITIVE,DFN,DUZ)
S SDSECURITY=SDSENSITIVE(1)_$S($G(SDSENSITIVE(2))'="":"|"_SDSENSITIVE(2),1:"")_$S($G(SDSENSITIVE(3))'="":"|"_SDSENSITIVE(3),1:"")
D RACELIST^SDES2UTIL1(.RACELIST,DFN)
D ETHNLIST^SDES2UTIL1(.ETHNLIST,DFN) ;get ethnicity
S FIELDS=".01;.02;.05;.08;.1;.105;.111;.112;.113;.114;.115;.116;.1112;.2203;.2207;.301;.302;.331;.332;"
S FIELDS=FIELDS_".333;.334;.335;.336;.337;.338;.339;.351;.39;.1219;.1151;.1152;.1153;.1154;.1155;.1156;.1157;.11573;"
S FIELDS=FIELDS_".1173;.1223;.2201;.33011;27.01;1100.01"
D GETS^DIQ(2,SDFN,FIELDS,"IE","SDPATARR")
;patient enrollment
S PCE=$G(SDPATARR(2,SDFN,27.01,"I"))
D:+PCE GETS^DIQ(27.11,+PCE_",",".07;.12;50.01;50.02;50.03","IE","SDPCE","SDPCEM")
S:+PCE CAT8GROUPFLG=(SDPCE(27.11,+PCE_",",.07,"E")="GROUP 8")&(SDPCE(27.11,+PCE_",",.12,"E")="g")
S CAT8GROUPFLG=$S($G(CAT8GROUPFLG)'="":CAT8GROUPFLG,1:0)
S SDMHP=$$START^SCMCMHTC(DFN) ;Return Mental Health Provider
S SDPCP=$$OUTPTPR^SDUTL3(DFN) ;Return Primary Care Provider
D ASSIGNADDR(.SDDEMO,DFN) ;assign values to build SDINFO array
;
;person identification information
S SDINFO("Patient","DataFileNumber")=DFN
S SDINFO("Patient","ICN")=$$GETPATICN^SDESINPUTVALUTL(DFN)
S SDINFO("Patient","Name")=$G(SDPATARR(2,SDFN,.01,"E"))
S SDINFO("Patient","SocialSecurityNumber")=$$LAST4SSN^SDESINPUTVALUTL(DFN)
S SDINFO("Patient","DateOfBirth")=$$FMTISO^SDAMUTDT($$GET1^DIQ(2,SDFN,.03,"I"))
S SDINFO("Patient","Race","IEN")=$G(RACELIST("IENS"))
S SDINFO("Patient","Race","Name")=$G(RACELIST("NAMES"))
S SDINFO("Patient","Ethnicity","IEN")=$G(ETHNLIST("IENS"))
S SDINFO("Patient","Ethnicity","Name")=$G(ETHNLIST("NAMES"))
S SDINFO("Patient","Sex")=$G(SDPATARR(2,SDFN,.02,"I"))
S SDINFO("Patient","Security")=SDSECURITY
S SDINFO("Patient","Marital")=$G(SDPATARR(2,SDFN,.05,"E"))
S SDINFO("Patient","Religion")=$G(SDPATARR(2,SDFN,.08,"E"))
S SDINFO("Patient","TimeStamp")=$$GETPREREGTIM(DFN)
;
;health information
S SDINFO("Patient","PrimaryCareProvider")=$P(SDPCP,"^",2)
S SDINFO("Patient","ServiceConnected")=$G(SDPATARR(2,SDFN,.301,"E"))
S SDINFO("Patient","ServiceConnectedPercentage")=$G(SDPATARR(2,SDFN,.302,"E"))
S SDINFO("Patient","Ward")=$G(SDPATARR(2,SDFN,.1,"E"))
S SDINFO("Patient","HealthRecordNumber")=$$HRN^SDES2UTIL1(DFN)
S SDINFO("Patient","MentalHealthProvider")=$P(SDMHP,"^",2)
;
;flags
S SDINFO("Patient","FugitiveFlag")=$G(SDPATARR(2,SDFN,1100.01,"I"))
S SDINFO("Patient","VeteranCatastrophicallyDisabled")=$G(SDPATARR(2,SDFN,.39,"I"))
S SDINFO("Patient","NationalFlag")=$$FLAGS^SDES2UTIL1(DFN,26.15)
S SDINFO("Patient","LocalFlag")=$$FLAGS^SDES2UTIL1(DFN,26.11)
S SDINFO("Patient","EnrollmentSubgroup")=$S(+PCE:SDPCE(27.11,+PCE_",",.12,"E"),1:"")
S SDINFO("Patient","Category8GFlag")=CAT8GROUPFLG
S SDINFO("Patient","SimilarPatients")=$$SIM(DFN)
S SDINFO("Patient","PriorityGroup")=$S(+PCE:SDPCE(27.11,+PCE_",",.07,"E"),1:"")
S SDINFO("Patient","GAFRequired")=$$GETGAF^SDES2UTIL1(DFN)
;
;contact information
S SDINFO("Patient","Cell")=$S(SDDEMO("PCELL")["X":$P(SDDEMO("PCELL"),"X"),1:SDDEMO("PCELL"))
S SDINFO("Patient","CellExt")=$S(SDDEMO("PCELL")["X":$P(SDDEMO("PCELL"),"X",2),1:"")
S SDINFO("Patient","Email")=SDDEMO("PEMAIL")
S SDINFO("Patient","HomePhone")=$S(SDDEMO("HPHONE")["X":$P(SDDEMO("HPHONE"),"X"),1:SDDEMO("HPHONE"))
S SDINFO("Patient","OfficePhone")=$S(SDDEMO("OPHONE")["X":$P(SDDEMO("OPHONE"),"X"),1:SDDEMO("OPHONE"))
S SDINFO("Patient","HomePhoneExt")=$S(SDDEMO("HPHONE")["X":$P(SDDEMO("HPHONE"),"X",2),1:"")
S SDINFO("Patient","OfficePhoneExt")=$S(SDDEMO("OPHONE")["X":$P(SDDEMO("OPHONE"),"X",2),1:"")
;
;mail address information
S SDINFO("Patient","MailingAddress","Street1")=SDDEMO("PADDRES1")
S SDINFO("Patient","MailingAddress","Street2")=SDDEMO("PADDRES2")
S SDINFO("Patient","MailingAddress","Street3")=SDDEMO("PADDRES3")
S SDINFO("Patient","MailingAddress","City")=SDDEMO("PCITY")
S SDINFO("Patient","MailingAddress","State")=SDDEMO("PSTATE")
S SDINFO("Patient","MailingAddress","County")=SDDEMO("PCOUNTY")
S SDINFO("Patient","MailingAddress","Country")=SDDEMO("PCOUNTRY")
S SDINFO("Patient","MailingAddress","CountryName")=$G(SDPATARR(2,SDFN,.1173,"E"))
S SDINFO("Patient","MailingAddress","Zip4")=SDDEMO("PZIP+4")
S SDINFO("Patient","MailingAddress","Zip")=$G(SDPATARR(2,SDFN,.116,"E"))
S SDINFO("Patient","AddressIndicator")=SDDEMO("BADADD")
;
;Residential Address Info
S SDINFO("Patient","ResidentialAddress","Address1")=$G(SDPATARR(2,SDFN,.1151,"E"))
S SDINFO("Patient","ResidentialAddress","Address2")=$G(SDPATARR(2,SDFN,.1152,"E"))
S SDINFO("Patient","ResidentialAddress","Address3")=$G(SDPATARR(2,SDFN,.1153,"E"))
S SDINFO("Patient","ResidentialAddress","City")=$G(SDPATARR(2,SDFN,.1154,"E"))
S SDINFO("Patient","ResidentialAddress","State")=$G(SDPATARR(2,SDFN,.1155,"E"))
S SDINFO("Patient","ResidentialAddress","County")=$G(SDPATARR(2,SDFN,.1157,"E"))
S SDINFO("Patient","ResidentialAddress","Country")=$G(SDPATARR(2,SDFN,.11573,"I"))
S SDINFO("Patient","ResidentialAddress","CountryName")=$G(SDPATARR(2,SDFN,.11573,"E"))
S SDINFO("Patient","ResidentialAddress","Zip4")=$G(SDPATARR(2,SDFN,.1156,"E"))
S SDINFO("Patient","ResidentialAddress","Zip")=$E($G(SDPATARR(2,SDFN,.1156,"E")),1,5)
;
;Temp Address information
S SDINFO("Patient","TemporaryAddress","Address1")=SDDEMO("PTADDRESS1")
S SDINFO("Patient","TemporaryAddress","Address2")=SDDEMO("PTADDRESS2")
S SDINFO("Patient","TemporaryAddress","Address3")=SDDEMO("PTADDRESS3")
S SDINFO("Patient","TemporaryAddress","City")=SDDEMO("PTCITY")
S SDINFO("Patient","TemporaryAddress","State")=SDDEMO("PTSTATE")
S SDINFO("Patient","TemporaryAddress","Zip")=SDDEMO("PTZIP")
S SDINFO("Patient","TemporaryAddress","Zip4")=SDDEMO("PTZIP+4")
S SDINFO("Patient","TemporaryAddress","Country")=SDDEMO("PTCOUNTRY")
S SDINFO("Patient","TemporaryAddress","CountryName")=$G(SDPATARR(2,SDFN,.1223,"E"))
S SDINFO("Patient","TemporaryAddress","County")=SDDEMO("PTCOUNTY")
S SDINFO("Patient","TemporaryAddressActive")=$S($G(SDDEMO("PTACTIVE"))="Y":1,1:0)
S SDINFO("Patient","TemporaryAddressStart")=$$FMTISO^SDAMUTDT($$GET1^DIQ(2,SDFN,.1217,"I"))
S SDINFO("Patient","TemporaryAddressEnd")=$$FMTISO^SDAMUTDT($$GET1^DIQ(2,SDFN,.1218,"I"))
S SDINFO("Patient","TemporaryPhone")=$G(SDPATARR(2,SDFN,.1219,"E"))
;
;Primary Next Of Kin Information
S SDINFO("Patient","PrimaryNextOfKin","Name")=SDDEMO("NOK")
S SDINFO("Patient","PrimaryNextOfKin","Relationship")=SDDEMO("KREL")
S SDINFO("Patient","PrimaryNextOfKin","Phone")=SDDEMO("KPHONE")
S SDINFO("Patient","PrimaryNextOfKin","Address","Address")=SDDEMO("KSTREET")
S SDINFO("Patient","PrimaryNextOfKin","Address","City")=SDDEMO("KCITY")
S SDINFO("Patient","PrimaryNextOfKin","Address","State")=SDDEMO("KSTATE")
S SDINFO("Patient","PrimaryNextOfKin","Address","Zip")=SDDEMO("KZIP")
S SDINFO("Patient","PrimaryNextOfKin","Address","street2")=SDDEMO("KSTREET2")
S SDINFO("Patient","PrimaryNextOfKin","Address","Street3")=SDDEMO("KSTREET3")
S SDINFO("Patient","PrimaryNextOfKin","Address","Zip4")=$G(SDPATARR(2,SDFN,.2207,"E"))
;
;Secondary Next of Kin Information
S SDINFO("Patient","SecondaryNextOfKin","Name")=SDDEMO("K2NAME")
S SDINFO("Patient","SecondaryNextOfKin","Relationship")=SDDEMO("K2REL")
S SDINFO("Patient","SecondaryNextOfKin","Phone")=SDDEMO("K2PHONE")
S SDINFO("Patient","SecondaryNextOfKin","Address","Street")=SDDEMO("K2STREET")
S SDINFO("Patient","SecondaryNextOfKin","Address","Street2")=SDDEMO("K2STREET2")
S SDINFO("Patient","SecondaryNextOfKin","Address","Street3")=SDDEMO("K2STREET3")
S SDINFO("Patient","SecondaryNextOfKin","Address","City")=SDDEMO("K2CITY")
S SDINFO("Patient","SecondaryNextOfKin","Address","State")=SDDEMO("K2STATE")
S SDINFO("Patient","SecondaryNextOfKin","Address","Zip")=SDDEMO("K2ZIP")
S SDINFO("Patient","SecondaryNextOfKin","Address","Zip4")=$G(SDPATARR(2,SDFN,.2203,"E"))
;
; Emergency Contact
S SDINFO("Patient","EmergencyContact","Name")=$G(SDPATARR(2,SDFN,.331,"E"))
S SDINFO("Patient","EmergencyContact","Relationship")=$G(SDPATARR(2,SDFN,.332,"E"))
S SDINFO("Patient","EmergencyContact","Phone")=$G(SDPATARR(2,SDFN,.339,"E"))
S SDINFO("Patient","EmergencyContact","WorkPhone")=$G(SDPATARR(2,SDFN,.33011,"E"))
S SDINFO("Patient","EmergencyContact","Address","Street")=$G(SDPATARR(2,SDFN,.333,"E"))
S SDINFO("Patient","EmergencyContact","Address","Street2")=$G(SDPATARR(2,SDFN,.334,"E"))
S SDINFO("Patient","EmergencyContact","Address","Street3")=$G(SDPATARR(2,SDFN,.335,"E"))
S SDINFO("Patient","EmergencyContact","Address","City")=$G(SDPATARR(2,SDFN,.336,"E"))
S SDINFO("Patient","EmergencyContact","Address","State")=$G(SDPATARR(2,SDFN,.337,"E"))
S SDINFO("Patient","EmergencyContact","Address","Zip")=$G(SDPATARR(2,SDFN,.338,"E"))
S SDINFO("Patient","EmergencyContact","Address","Zip4")=$G(SDPATARR(2,SDFN,.2201,"E"))
D GETELIGIBILITY^SDESPATSEARCH(.PATIENTLIST,DFN,1)
M SDINFO("Patient")=PATIENTLIST("Patient",1)
; Date Of Death
S SDDOD=$$FMTISO^SDAMUTDT($G(SDPATARR(2,SDFN,.351,"I"))),SDDOD=$E(SDDOD,1,10)
S SDINFO("Patient","DateOfDeath")=SDDOD
Q
;
SIM(DFN) ;get similar patient data
N MI,MSG,NOD,PATS,RET,SIM
S (MSG,PATS,SIM)=""
D GUIBS5A^DPTLK6(.RET,DFN)
S MI=1 F S MI=$O(RET(MI)) Q:MI="" D
.S NOD=RET(MI)
.I $P(NOD,U,1)=0 S MSG=MSG_$S(MSG'="":" ",1:"")_$P(NOD,U,2)
.I $P(NOD,U,1)=1 S PATS=PATS_$S(PATS'="":";;",1:"")_$TR($P(NOD,U,2,4),U,"~")_"~"_$E($P(NOD,U,5),6,$L($P(NOD,U,5))) S:(MSG'="")&($E(MSG,$L(MSG))'=".") MSG=MSG_"."
S SIM=MSG_"|"_PATS
Q SIM
;
ASSIGNADDR(RET,DFN) ;build array for output
N SDD,SDI,SDM,Z0
N PCE,PCOUNTY,PTCOUNTY,PSTATE
Q:'+$G(DFN)
Q:'$D(^DPT(DFN,0))
;
;collect demographics
K RET
S (PCOUNTY,PTCOUNTY,RET("PCOUNTY"),RET("PTCOUNTY"))=""
;
;get addresses
K SDD,SDM D GETS^DIQ(2,DFN_",",".111:.135;.211:.2207","IE","SDD","SDM")
S RET("PADDRES1")=$G(SDD(2,DFN_",",.111,"E"))
S RET("PADDRES2")=$G(SDD(2,DFN_",",.112,"E"))
S RET("PADDRES3")=$G(SDD(2,DFN_",",.113,"E"))
S RET("PZIP+4")=$G(SDD(2,DFN_",",.1112,"E"))
S RET("PCITY")=$G(SDD(2,DFN_",",.114,"E"))
S PSTATE=$G(SDD(2,DFN_",",.115,"I"))
S RET("PSTATE")=$G(SDD(2,DFN_",",.115,"E"))
I PSTATE'="" D
.S PCOUNTY=$G(SDD(2,DFN_",",.117,"I"))
.S:PCOUNTY'="" RET("PCOUNTY")=$P($G(^DIC(5,PSTATE,1,PCOUNTY,0)),U,1)
S RET("PCOUNTRY")=$G(SDD(2,DFN_",",.1173,"I"))
I RET("PCOUNTRY")'="",'+RET("PCOUNTRY") S RET("PCOUNTRY")=$O(^HL(779.004,"B",RET("PCOUNTRY"),0))
S RET("BADADD")=$G(SDD(2,DFN_",",.121,"I"))
S RET("PTACTIVE")=$G(SDD(2,DFN_",",.12105,"I"))
S RET("PTADDRESS1")=$G(SDD(2,DFN_",",.1211,"E"))
S RET("PTADDRESS2")=$G(SDD(2,DFN_",",.1212,"E"))
S RET("PTADDRESS3")=$G(SDD(2,DFN_",",.1213,"E"))
S RET("PTCITY")=$G(SDD(2,DFN_",",.1214,"E"))
N PTSTATE S PTSTATE=$G(SDD(2,DFN_",",.1215,"I"))
S RET("PTSTATE")=$G(SDD(2,DFN_",",.1215,"E"))
S RET("PTZIP")=$G(SDD(2,DFN_",",.1216,"E"))
S RET("PTZIP+4")=$G(SDD(2,DFN_",",.12112,"E"))
S RET("PTCOUNTRY")=$G(SDD(2,DFN_",",.1223,"I"))
I PTSTATE'="" D
.S PTCOUNTY=$G(SDD(2,DFN_",",.12111,"I"))
.S:PTCOUNTY'="" RET("PTCOUNTY")=$P($G(^DIC(5,PTSTATE,1,PTCOUNTY,0)),U,1)
S RET("PTSTART")=$G(SDD(2,DFN_",",.1217,"E"))
S RET("PTEND")=$G(SDD(2,DFN_",",.1218,"E"))
;
;get phones
S RET("HPHONE")=$G(SDD(2,DFN_",",.131,"E"))
S RET("OPHONE")=$G(SDD(2,DFN_",",.132,"E"))
S RET("PTPHONE")=$G(SDD(2,DFN_",",.1219,"E"))
S RET("PCELL")=$G(SDD(2,DFN_",",.134,"E"))
S RET("PPAGER")=$G(SDD(2,DFN_",",.135,"E"))
S RET("PEMAIL")=$G(SDD(2,DFN_",",.133,"E"))
;
;next of kin data:
S RET("NOK")=$G(SDD(2,DFN_",",.211,"I"))
S RET("KNAME")=$G(SDD(2,DFN_",",.211,"E"))
S RET("KREL")=$G(SDD(2,DFN_",",.212,"E"))
S RET("KPHONE")=$G(SDD(2,DFN_",",.219,"E"))
S RET("KSTREET")=$G(SDD(2,DFN_",",.213,"E"))
S RET("KSTREET2")=$G(SDD(2,DFN_",",.214,"E"))
S RET("KSTREET3")=$G(SDD(2,DFN_",",.215,"E"))
S RET("KCITY")=$G(SDD(2,DFN_",",.216,"E"))
S RET("KSTATE")=$G(SDD(2,DFN_",",.217,"E"))
S RET("KZIP")=$G(SDD(2,DFN_",",.218,"E"))
;
S RET("NOK2")=$G(SDD(2,DFN_",",.2191,"I"))
S RET("K2NAME")=$G(SDD(2,DFN_",",.2191,"E"))
S RET("K2REL")=$G(SDD(2,DFN_",",.2192,"E"))
S RET("K2PHONE")=$G(SDD(2,DFN_",",.2199,"E"))
S RET("K2STREET")=$G(SDD(2,DFN_",",.2193,"E"))
S RET("K2STREET2")=$G(SDD(2,DFN_",",.2194,"E"))
S RET("K2STREET3")=$G(SDD(2,DFN_",",.2195,"E"))
S RET("K2CITY")=$G(SDD(2,DFN_",",.2196,"E"))
S RET("K2STATE")=$G(SDD(2,DFN_",",.2197,"E"))
S RET("K2ZIP")=$G(SDD(2,DFN_",",.2198,"E"))
;
Q
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSDES2GETREGS 14534 printed Oct 28, 2026@01:48:37 Page 2
SDES2GETREGS ;ALB/TJB,JAS,MCB,JAS - Get registration info JSON format ; July 31, 2026
+1 ;;5.3;SCHEDULING;**873,889,901,909,952**;AUG 13, 1993;Build 4
+2 ;;Per VHA Directive 6402, this routine should not be modified
+3 ; Documented API's and Integration Agreements
+4 ; -------------------------------------------
+5 ; Reference to PATIENT fields in ICRs: #1476, #7019, #7029, #7030, #10035
+6 ; Reference to SCHEDULED ADMISSION in ICR #4425
+7 ; Reference to DUZ^XUP is supported by IA #7487
+8 ;
+9 QUIT
+10 ;
GETPATINFO(JSON,SDCONTEXT,SDPARAM) ;return basic reg info/demographics for given patient in JSON format
+1 ;Input Parameter:
+2 ; SDPARAM("PATIENT IEN") - Patient ID - Pointer to PATIENT file
+3 ;Returns:
+4 ; JSON formatted output
+5 NEW RETURN,SDINFO,SDDFN,SDPATARR,SDDEMO,PRACE,PRACEN,PETH,PETHN,SDMHP,SDPCP,GAF,GAFR,SDZIP,SDDOD,ERRORS
+6 ; Next line to address leaks from other APIs
+7 NEW PRFLIST,VA,YSZ,Z0
+8 ;
+9 DO VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
+10 IF $DATA(ERRORS)
SET RETURN("Patient")=""
MERGE RETURN=ERRORS
DO BUILDJSON^SDES2JSON(.JSON,.RETURN)
QUIT
+11 IF $GET(SDCONTEXT("USER DUZ"))'=""
NEW DUZ
DO DUZ^XUP(SDCONTEXT("USER DUZ"))
+12 DO VALIDATE(.ERRORS,.SDPARAM)
+13 IF $DATA(ERRORS)
SET RETURN("Patient")=""
MERGE RETURN=ERRORS
DO BUILDJSON^SDES2JSON(.JSON,.RETURN)
QUIT
+14 DO GETDEMOGR(.RETURN,.SDCONTEXT,.SDPARAM)
+15 DO BUILDJSON^SDES2JSON(.JSON,.RETURN)
+16 QUIT
+17 ;
VALIDATE(ERRORS,SDPARAM) ;validate input Parameter
+1 DO VALPATDFN^SDES2VAL2(.ERRORS,$GET(SDPARAM("PATIENT IEN")),1,0)
+2 QUIT
+3 ;
GETPREREGTIM(DFN) ;
+1 NEW PREREGTIMIEN,PREREGTIM
+2 SET PREREGTIM=""
+3 SET PREREGTIMIEN=$ORDER(^DGS(41.41,"B",DFN,"A"),-1)
+4 IF PREREGTIMIEN'=""
Begin DoDot:1
+5 SET PREREGTIM=$$FMTISO^SDAMUTDT($$GET1^DIQ(41.41,PREREGTIMIEN_",",1,"I"))
End DoDot:1
+6 QUIT PREREGTIM
+7 ;
GETDEMOGR(SDINFO,SDCONTEXT,SDPARAM) ;
+1 NEW PATIENTLIST,SDDEMO,DFN,RACELIST,ETHNLIST,SDFN,FIELDS,PCE,SDPCE,SDPCEM,CAT8GROUPFLG,SDMHP,MHTC,SDPCP,SDSENSITIVE,SDSECURITY
+2 SET DFN=SDPARAM("PATIENT IEN")
SET SDFN=DFN_","
+3 DO SENSITIVE^SDES2UTIL(.SDSENSITIVE,DFN,DUZ)
+4 SET SDSECURITY=SDSENSITIVE(1)_$SELECT($GET(SDSENSITIVE(2))'="":"|"_SDSENSITIVE(2),1:"")_$SELECT($GET(SDSENSITIVE(3))'="":"|"_SDSENSITIVE(3),1:"")
+5 DO RACELIST^SDES2UTIL1(.RACELIST,DFN)
+6 ;get ethnicity
DO ETHNLIST^SDES2UTIL1(.ETHNLIST,DFN)
+7 SET FIELDS=".01;.02;.05;.08;.1;.105;.111;.112;.113;.114;.115;.116;.1112;.2203;.2207;.301;.302;.331;.332;"
+8 SET FIELDS=FIELDS_".333;.334;.335;.336;.337;.338;.339;.351;.39;.1219;.1151;.1152;.1153;.1154;.1155;.1156;.1157;.11573;"
+9 SET FIELDS=FIELDS_".1173;.1223;.2201;.33011;27.01;1100.01"
+10 DO GETS^DIQ(2,SDFN,FIELDS,"IE","SDPATARR")
+11 ;patient enrollment
+12 SET PCE=$GET(SDPATARR(2,SDFN,27.01,"I"))
+13 if +PCE
DO GETS^DIQ(27.11,+PCE_",",".07;.12;50.01;50.02;50.03","IE","SDPCE","SDPCEM")
+14 if +PCE
SET CAT8GROUPFLG=(SDPCE(27.11,+PCE_",",.07,"E")="GROUP 8")&(SDPCE(27.11,+PCE_",",.12,"E")="g")
+15 SET CAT8GROUPFLG=$SELECT($GET(CAT8GROUPFLG)'="":CAT8GROUPFLG,1:0)
+16 ;Return Mental Health Provider
SET SDMHP=$$START^SCMCMHTC(DFN)
+17 ;Return Primary Care Provider
SET SDPCP=$$OUTPTPR^SDUTL3(DFN)
+18 ;assign values to build SDINFO array
DO ASSIGNADDR(.SDDEMO,DFN)
+19 ;
+20 ;person identification information
+21 SET SDINFO("Patient","DataFileNumber")=DFN
+22 SET SDINFO("Patient","ICN")=$$GETPATICN^SDESINPUTVALUTL(DFN)
+23 SET SDINFO("Patient","Name")=$GET(SDPATARR(2,SDFN,.01,"E"))
+24 SET SDINFO("Patient","SocialSecurityNumber")=$$LAST4SSN^SDESINPUTVALUTL(DFN)
+25 SET SDINFO("Patient","DateOfBirth")=$$FMTISO^SDAMUTDT($$GET1^DIQ(2,SDFN,.03,"I"))
+26 SET SDINFO("Patient","Race","IEN")=$GET(RACELIST("IENS"))
+27 SET SDINFO("Patient","Race","Name")=$GET(RACELIST("NAMES"))
+28 SET SDINFO("Patient","Ethnicity","IEN")=$GET(ETHNLIST("IENS"))
+29 SET SDINFO("Patient","Ethnicity","Name")=$GET(ETHNLIST("NAMES"))
+30 SET SDINFO("Patient","Sex")=$GET(SDPATARR(2,SDFN,.02,"I"))
+31 SET SDINFO("Patient","Security")=SDSECURITY
+32 SET SDINFO("Patient","Marital")=$GET(SDPATARR(2,SDFN,.05,"E"))
+33 SET SDINFO("Patient","Religion")=$GET(SDPATARR(2,SDFN,.08,"E"))
+34 SET SDINFO("Patient","TimeStamp")=$$GETPREREGTIM(DFN)
+35 ;
+36 ;health information
+37 SET SDINFO("Patient","PrimaryCareProvider")=$PIECE(SDPCP,"^",2)
+38 SET SDINFO("Patient","ServiceConnected")=$GET(SDPATARR(2,SDFN,.301,"E"))
+39 SET SDINFO("Patient","ServiceConnectedPercentage")=$GET(SDPATARR(2,SDFN,.302,"E"))
+40 SET SDINFO("Patient","Ward")=$GET(SDPATARR(2,SDFN,.1,"E"))
+41 SET SDINFO("Patient","HealthRecordNumber")=$$HRN^SDES2UTIL1(DFN)
+42 SET SDINFO("Patient","MentalHealthProvider")=$PIECE(SDMHP,"^",2)
+43 ;
+44 ;flags
+45 SET SDINFO("Patient","FugitiveFlag")=$GET(SDPATARR(2,SDFN,1100.01,"I"))
+46 SET SDINFO("Patient","VeteranCatastrophicallyDisabled")=$GET(SDPATARR(2,SDFN,.39,"I"))
+47 SET SDINFO("Patient","NationalFlag")=$$FLAGS^SDES2UTIL1(DFN,26.15)
+48 SET SDINFO("Patient","LocalFlag")=$$FLAGS^SDES2UTIL1(DFN,26.11)
+49 SET SDINFO("Patient","EnrollmentSubgroup")=$SELECT(+PCE:SDPCE(27.11,+PCE_",",.12,"E"),1:"")
+50 SET SDINFO("Patient","Category8GFlag")=CAT8GROUPFLG
+51 SET SDINFO("Patient","SimilarPatients")=$$SIM(DFN)
+52 SET SDINFO("Patient","PriorityGroup")=$SELECT(+PCE:SDPCE(27.11,+PCE_",",.07,"E"),1:"")
+53 SET SDINFO("Patient","GAFRequired")=$$GETGAF^SDES2UTIL1(DFN)
+54 ;
+55 ;contact information
+56 SET SDINFO("Patient","Cell")=$SELECT(SDDEMO("PCELL")["X":$PIECE(SDDEMO("PCELL"),"X"),1:SDDEMO("PCELL"))
+57 SET SDINFO("Patient","CellExt")=$SELECT(SDDEMO("PCELL")["X":$PIECE(SDDEMO("PCELL"),"X",2),1:"")
+58 SET SDINFO("Patient","Email")=SDDEMO("PEMAIL")
+59 SET SDINFO("Patient","HomePhone")=$SELECT(SDDEMO("HPHONE")["X":$PIECE(SDDEMO("HPHONE"),"X"),1:SDDEMO("HPHONE"))
+60 SET SDINFO("Patient","OfficePhone")=$SELECT(SDDEMO("OPHONE")["X":$PIECE(SDDEMO("OPHONE"),"X"),1:SDDEMO("OPHONE"))
+61 SET SDINFO("Patient","HomePhoneExt")=$SELECT(SDDEMO("HPHONE")["X":$PIECE(SDDEMO("HPHONE"),"X",2),1:"")
+62 SET SDINFO("Patient","OfficePhoneExt")=$SELECT(SDDEMO("OPHONE")["X":$PIECE(SDDEMO("OPHONE"),"X",2),1:"")
+63 ;
+64 ;mail address information
+65 SET SDINFO("Patient","MailingAddress","Street1")=SDDEMO("PADDRES1")
+66 SET SDINFO("Patient","MailingAddress","Street2")=SDDEMO("PADDRES2")
+67 SET SDINFO("Patient","MailingAddress","Street3")=SDDEMO("PADDRES3")
+68 SET SDINFO("Patient","MailingAddress","City")=SDDEMO("PCITY")
+69 SET SDINFO("Patient","MailingAddress","State")=SDDEMO("PSTATE")
+70 SET SDINFO("Patient","MailingAddress","County")=SDDEMO("PCOUNTY")
+71 SET SDINFO("Patient","MailingAddress","Country")=SDDEMO("PCOUNTRY")
+72 SET SDINFO("Patient","MailingAddress","CountryName")=$GET(SDPATARR(2,SDFN,.1173,"E"))
+73 SET SDINFO("Patient","MailingAddress","Zip4")=SDDEMO("PZIP+4")
+74 SET SDINFO("Patient","MailingAddress","Zip")=$GET(SDPATARR(2,SDFN,.116,"E"))
+75 SET SDINFO("Patient","AddressIndicator")=SDDEMO("BADADD")
+76 ;
+77 ;Residential Address Info
+78 SET SDINFO("Patient","ResidentialAddress","Address1")=$GET(SDPATARR(2,SDFN,.1151,"E"))
+79 SET SDINFO("Patient","ResidentialAddress","Address2")=$GET(SDPATARR(2,SDFN,.1152,"E"))
+80 SET SDINFO("Patient","ResidentialAddress","Address3")=$GET(SDPATARR(2,SDFN,.1153,"E"))
+81 SET SDINFO("Patient","ResidentialAddress","City")=$GET(SDPATARR(2,SDFN,.1154,"E"))
+82 SET SDINFO("Patient","ResidentialAddress","State")=$GET(SDPATARR(2,SDFN,.1155,"E"))
+83 SET SDINFO("Patient","ResidentialAddress","County")=$GET(SDPATARR(2,SDFN,.1157,"E"))
+84 SET SDINFO("Patient","ResidentialAddress","Country")=$GET(SDPATARR(2,SDFN,.11573,"I"))
+85 SET SDINFO("Patient","ResidentialAddress","CountryName")=$GET(SDPATARR(2,SDFN,.11573,"E"))
+86 SET SDINFO("Patient","ResidentialAddress","Zip4")=$GET(SDPATARR(2,SDFN,.1156,"E"))
+87 SET SDINFO("Patient","ResidentialAddress","Zip")=$EXTRACT($GET(SDPATARR(2,SDFN,.1156,"E")),1,5)
+88 ;
+89 ;Temp Address information
+90 SET SDINFO("Patient","TemporaryAddress","Address1")=SDDEMO("PTADDRESS1")
+91 SET SDINFO("Patient","TemporaryAddress","Address2")=SDDEMO("PTADDRESS2")
+92 SET SDINFO("Patient","TemporaryAddress","Address3")=SDDEMO("PTADDRESS3")
+93 SET SDINFO("Patient","TemporaryAddress","City")=SDDEMO("PTCITY")
+94 SET SDINFO("Patient","TemporaryAddress","State")=SDDEMO("PTSTATE")
+95 SET SDINFO("Patient","TemporaryAddress","Zip")=SDDEMO("PTZIP")
+96 SET SDINFO("Patient","TemporaryAddress","Zip4")=SDDEMO("PTZIP+4")
+97 SET SDINFO("Patient","TemporaryAddress","Country")=SDDEMO("PTCOUNTRY")
+98 SET SDINFO("Patient","TemporaryAddress","CountryName")=$GET(SDPATARR(2,SDFN,.1223,"E"))
+99 SET SDINFO("Patient","TemporaryAddress","County")=SDDEMO("PTCOUNTY")
+100 SET SDINFO("Patient","TemporaryAddressActive")=$SELECT($GET(SDDEMO("PTACTIVE"))="Y":1,1:0)
+101 SET SDINFO("Patient","TemporaryAddressStart")=$$FMTISO^SDAMUTDT($$GET1^DIQ(2,SDFN,.1217,"I"))
+102 SET SDINFO("Patient","TemporaryAddressEnd")=$$FMTISO^SDAMUTDT($$GET1^DIQ(2,SDFN,.1218,"I"))
+103 SET SDINFO("Patient","TemporaryPhone")=$GET(SDPATARR(2,SDFN,.1219,"E"))
+104 ;
+105 ;Primary Next Of Kin Information
+106 SET SDINFO("Patient","PrimaryNextOfKin","Name")=SDDEMO("NOK")
+107 SET SDINFO("Patient","PrimaryNextOfKin","Relationship")=SDDEMO("KREL")
+108 SET SDINFO("Patient","PrimaryNextOfKin","Phone")=SDDEMO("KPHONE")
+109 SET SDINFO("Patient","PrimaryNextOfKin","Address","Address")=SDDEMO("KSTREET")
+110 SET SDINFO("Patient","PrimaryNextOfKin","Address","City")=SDDEMO("KCITY")
+111 SET SDINFO("Patient","PrimaryNextOfKin","Address","State")=SDDEMO("KSTATE")
+112 SET SDINFO("Patient","PrimaryNextOfKin","Address","Zip")=SDDEMO("KZIP")
+113 SET SDINFO("Patient","PrimaryNextOfKin","Address","street2")=SDDEMO("KSTREET2")
+114 SET SDINFO("Patient","PrimaryNextOfKin","Address","Street3")=SDDEMO("KSTREET3")
+115 SET SDINFO("Patient","PrimaryNextOfKin","Address","Zip4")=$GET(SDPATARR(2,SDFN,.2207,"E"))
+116 ;
+117 ;Secondary Next of Kin Information
+118 SET SDINFO("Patient","SecondaryNextOfKin","Name")=SDDEMO("K2NAME")
+119 SET SDINFO("Patient","SecondaryNextOfKin","Relationship")=SDDEMO("K2REL")
+120 SET SDINFO("Patient","SecondaryNextOfKin","Phone")=SDDEMO("K2PHONE")
+121 SET SDINFO("Patient","SecondaryNextOfKin","Address","Street")=SDDEMO("K2STREET")
+122 SET SDINFO("Patient","SecondaryNextOfKin","Address","Street2")=SDDEMO("K2STREET2")
+123 SET SDINFO("Patient","SecondaryNextOfKin","Address","Street3")=SDDEMO("K2STREET3")
+124 SET SDINFO("Patient","SecondaryNextOfKin","Address","City")=SDDEMO("K2CITY")
+125 SET SDINFO("Patient","SecondaryNextOfKin","Address","State")=SDDEMO("K2STATE")
+126 SET SDINFO("Patient","SecondaryNextOfKin","Address","Zip")=SDDEMO("K2ZIP")
+127 SET SDINFO("Patient","SecondaryNextOfKin","Address","Zip4")=$GET(SDPATARR(2,SDFN,.2203,"E"))
+128 ;
+129 ; Emergency Contact
+130 SET SDINFO("Patient","EmergencyContact","Name")=$GET(SDPATARR(2,SDFN,.331,"E"))
+131 SET SDINFO("Patient","EmergencyContact","Relationship")=$GET(SDPATARR(2,SDFN,.332,"E"))
+132 SET SDINFO("Patient","EmergencyContact","Phone")=$GET(SDPATARR(2,SDFN,.339,"E"))
+133 SET SDINFO("Patient","EmergencyContact","WorkPhone")=$GET(SDPATARR(2,SDFN,.33011,"E"))
+134 SET SDINFO("Patient","EmergencyContact","Address","Street")=$GET(SDPATARR(2,SDFN,.333,"E"))
+135 SET SDINFO("Patient","EmergencyContact","Address","Street2")=$GET(SDPATARR(2,SDFN,.334,"E"))
+136 SET SDINFO("Patient","EmergencyContact","Address","Street3")=$GET(SDPATARR(2,SDFN,.335,"E"))
+137 SET SDINFO("Patient","EmergencyContact","Address","City")=$GET(SDPATARR(2,SDFN,.336,"E"))
+138 SET SDINFO("Patient","EmergencyContact","Address","State")=$GET(SDPATARR(2,SDFN,.337,"E"))
+139 SET SDINFO("Patient","EmergencyContact","Address","Zip")=$GET(SDPATARR(2,SDFN,.338,"E"))
+140 SET SDINFO("Patient","EmergencyContact","Address","Zip4")=$GET(SDPATARR(2,SDFN,.2201,"E"))
+141 DO GETELIGIBILITY^SDESPATSEARCH(.PATIENTLIST,DFN,1)
+142 MERGE SDINFO("Patient")=PATIENTLIST("Patient",1)
+143 ; Date Of Death
+144 SET SDDOD=$$FMTISO^SDAMUTDT($GET(SDPATARR(2,SDFN,.351,"I")))
SET SDDOD=$EXTRACT(SDDOD,1,10)
+145 SET SDINFO("Patient","DateOfDeath")=SDDOD
+146 QUIT
+147 ;
SIM(DFN) ;get similar patient data
+1 NEW MI,MSG,NOD,PATS,RET,SIM
+2 SET (MSG,PATS,SIM)=""
+3 DO GUIBS5A^DPTLK6(.RET,DFN)
+4 SET MI=1
FOR
SET MI=$ORDER(RET(MI))
if MI=""
QUIT
Begin DoDot:1
+5 SET NOD=RET(MI)
+6 IF $PIECE(NOD,U,1)=0
SET MSG=MSG_$SELECT(MSG'="":" ",1:"")_$PIECE(NOD,U,2)
+7 IF $PIECE(NOD,U,1)=1
SET PATS=PATS_$SELECT(PATS'="":";;",1:"")_$TRANSLATE($PIECE(NOD,U,2,4),U,"~")_"~"_$EXTRACT($PIECE(NOD,U,5),6,$LENGTH($PIECE(NOD,U,5)))
if (MSG'="")&($EXTRACT(MSG,$LENGTH(MSG))'=".")
SET MSG=MSG_"."
End DoDot:1
+8 SET SIM=MSG_"|"_PATS
+9 QUIT SIM
+10 ;
ASSIGNADDR(RET,DFN) ;build array for output
+1 NEW SDD,SDI,SDM,Z0
+2 NEW PCE,PCOUNTY,PTCOUNTY,PSTATE
+3 if '+$GET(DFN)
QUIT
+4 if '$DATA(^DPT(DFN,0))
QUIT
+5 ;
+6 ;collect demographics
+7 KILL RET
+8 SET (PCOUNTY,PTCOUNTY,RET("PCOUNTY"),RET("PTCOUNTY"))=""
+9 ;
+10 ;get addresses
+11 KILL SDD,SDM
DO GETS^DIQ(2,DFN_",",".111:.135;.211:.2207","IE","SDD","SDM")
+12 SET RET("PADDRES1")=$GET(SDD(2,DFN_",",.111,"E"))
+13 SET RET("PADDRES2")=$GET(SDD(2,DFN_",",.112,"E"))
+14 SET RET("PADDRES3")=$GET(SDD(2,DFN_",",.113,"E"))
+15 SET RET("PZIP+4")=$GET(SDD(2,DFN_",",.1112,"E"))
+16 SET RET("PCITY")=$GET(SDD(2,DFN_",",.114,"E"))
+17 SET PSTATE=$GET(SDD(2,DFN_",",.115,"I"))
+18 SET RET("PSTATE")=$GET(SDD(2,DFN_",",.115,"E"))
+19 IF PSTATE'=""
Begin DoDot:1
+20 SET PCOUNTY=$GET(SDD(2,DFN_",",.117,"I"))
+21 if PCOUNTY'=""
SET RET("PCOUNTY")=$PIECE($GET(^DIC(5,PSTATE,1,PCOUNTY,0)),U,1)
End DoDot:1
+22 SET RET("PCOUNTRY")=$GET(SDD(2,DFN_",",.1173,"I"))
+23 IF RET("PCOUNTRY")'=""
IF '+RET("PCOUNTRY")
SET RET("PCOUNTRY")=$ORDER(^HL(779.004,"B",RET("PCOUNTRY"),0))
+24 SET RET("BADADD")=$GET(SDD(2,DFN_",",.121,"I"))
+25 SET RET("PTACTIVE")=$GET(SDD(2,DFN_",",.12105,"I"))
+26 SET RET("PTADDRESS1")=$GET(SDD(2,DFN_",",.1211,"E"))
+27 SET RET("PTADDRESS2")=$GET(SDD(2,DFN_",",.1212,"E"))
+28 SET RET("PTADDRESS3")=$GET(SDD(2,DFN_",",.1213,"E"))
+29 SET RET("PTCITY")=$GET(SDD(2,DFN_",",.1214,"E"))
+30 NEW PTSTATE
SET PTSTATE=$GET(SDD(2,DFN_",",.1215,"I"))
+31 SET RET("PTSTATE")=$GET(SDD(2,DFN_",",.1215,"E"))
+32 SET RET("PTZIP")=$GET(SDD(2,DFN_",",.1216,"E"))
+33 SET RET("PTZIP+4")=$GET(SDD(2,DFN_",",.12112,"E"))
+34 SET RET("PTCOUNTRY")=$GET(SDD(2,DFN_",",.1223,"I"))
+35 IF PTSTATE'=""
Begin DoDot:1
+36 SET PTCOUNTY=$GET(SDD(2,DFN_",",.12111,"I"))
+37 if PTCOUNTY'=""
SET RET("PTCOUNTY")=$PIECE($GET(^DIC(5,PTSTATE,1,PTCOUNTY,0)),U,1)
End DoDot:1
+38 SET RET("PTSTART")=$GET(SDD(2,DFN_",",.1217,"E"))
+39 SET RET("PTEND")=$GET(SDD(2,DFN_",",.1218,"E"))
+40 ;
+41 ;get phones
+42 SET RET("HPHONE")=$GET(SDD(2,DFN_",",.131,"E"))
+43 SET RET("OPHONE")=$GET(SDD(2,DFN_",",.132,"E"))
+44 SET RET("PTPHONE")=$GET(SDD(2,DFN_",",.1219,"E"))
+45 SET RET("PCELL")=$GET(SDD(2,DFN_",",.134,"E"))
+46 SET RET("PPAGER")=$GET(SDD(2,DFN_",",.135,"E"))
+47 SET RET("PEMAIL")=$GET(SDD(2,DFN_",",.133,"E"))
+48 ;
+49 ;next of kin data:
+50 SET RET("NOK")=$GET(SDD(2,DFN_",",.211,"I"))
+51 SET RET("KNAME")=$GET(SDD(2,DFN_",",.211,"E"))
+52 SET RET("KREL")=$GET(SDD(2,DFN_",",.212,"E"))
+53 SET RET("KPHONE")=$GET(SDD(2,DFN_",",.219,"E"))
+54 SET RET("KSTREET")=$GET(SDD(2,DFN_",",.213,"E"))
+55 SET RET("KSTREET2")=$GET(SDD(2,DFN_",",.214,"E"))
+56 SET RET("KSTREET3")=$GET(SDD(2,DFN_",",.215,"E"))
+57 SET RET("KCITY")=$GET(SDD(2,DFN_",",.216,"E"))
+58 SET RET("KSTATE")=$GET(SDD(2,DFN_",",.217,"E"))
+59 SET RET("KZIP")=$GET(SDD(2,DFN_",",.218,"E"))
+60 ;
+61 SET RET("NOK2")=$GET(SDD(2,DFN_",",.2191,"I"))
+62 SET RET("K2NAME")=$GET(SDD(2,DFN_",",.2191,"E"))
+63 SET RET("K2REL")=$GET(SDD(2,DFN_",",.2192,"E"))
+64 SET RET("K2PHONE")=$GET(SDD(2,DFN_",",.2199,"E"))
+65 SET RET("K2STREET")=$GET(SDD(2,DFN_",",.2193,"E"))
+66 SET RET("K2STREET2")=$GET(SDD(2,DFN_",",.2194,"E"))
+67 SET RET("K2STREET3")=$GET(SDD(2,DFN_",",.2195,"E"))
+68 SET RET("K2CITY")=$GET(SDD(2,DFN_",",.2196,"E"))
+69 SET RET("K2STATE")=$GET(SDD(2,DFN_",",.2197,"E"))
+70 SET RET("K2ZIP")=$GET(SDD(2,DFN_",",.2198,"E"))
+71 ;
+72 QUIT
+73 ;