XUIAMXML2 ;BHM/DLR,DRI - IAM ENTERPRISE NEW PERSON PROBABILISTIC SEARCH ;1/20/23 10:39
;;8.0;KERNEL;**799**;Jul 10, 1995;Build 3
;;Per VHA Directive 2004-038, this routine should not be modified
;
;Utilizes SPML (Service Provisioning Markup Language) for IAM lookup to
;PSIM (Person Services Identity Management)
;
;**731, VAMPI-8214 (dri) - create api to lookup user by secid and retrieve user traits **799 VAMPI-22625
;
AXMLBLD(MPIARR) ; setup xml to add or modify a user
; Input: MPIARR - Array of traits for add or modify
; Output: XML for the add or modify
; $$SITE^VASITE - IA #10112
;
N MPIPRID,MPISITE,MPIXML,QUOTE,CT
S QUOTE="""",MPISITE=$P($$SITE^VASITE,"^",3) ;station number
S MPIPRID=$P($$PARAM^HLCS2,"^",3) ;'p'roduction or 't'est
; heading
S MPIXML="<spml:"_$S(MPIARR("REQTYPE")="ADD":"addRequest",1:"modifyRequest")_" xmlns:spml="_QUOTE_"urn:oasis:names:tc:SPML:2:0"_QUOTE_" requestID="_QUOTE_$$MSGID^XUIAMXML()_QUOTE_">"
S MPIXML=MPIXML_"<spml:psoID ID="_QUOTE_MPIARR("vistaid")_QUOTE_"></spml:psoID>"
I MPIARR("REQTYPE")="MODIFY" S MPIXML=MPIXML_"<spml:modification modificationMode="_QUOTE_"replace"_QUOTE_">"
S MPIXML=MPIXML_"<spml:data>"
S MPIXML=MPIXML_"<spml:user>"
S MPIXML=MPIXML_"<spml:environment>"_MPIPRID_"</spml:environment>"
;don't default in subjectOrg or orgId, should be returned by psim
D IFADD^XUIAMXML("subjectOrg",.MPIARR,.MPIXML,"spml:subjectOrg") ;S MPIXML=MPIXML_"<spml:subjectOrg>Department Of Veterans Affairs</spml:subjectOrg>"
D IFADD^XUIAMXML("orgId",.MPIARR,.MPIXML,"spml:orgId") ;S MPIXML=MPIXML_"<spml:orgId>urn:oid:2.16.840.1.113883.4.349</spml:orgId>"
; user data
D IFADD^XUIAMXML("firstName",.MPIARR,.MPIXML,"spml:firstName")
D IFADD^XUIAMXML("middleName",.MPIARR,.MPIXML,"spml:middleName")
D IFADD^XUIAMXML("lastName",.MPIARR,.MPIXML,"spml:lastName")
D IFADD^XUIAMXML("prefixName",.MPIARR,.MPIXML,"spml:prefixName") ;new fields
D IFADD^XUIAMXML("suffixName",.MPIARR,.MPIXML,"spml:suffixName") ;new fields
D IFADD^XUIAMXML("degree",.MPIARR,.MPIXML,"spml:degree") ;new fields
;
D IFADD^XUIAMXML("gender",.MPIARR,.MPIXML,"spml:gender")
D IFADD^XUIAMXML("dob",.MPIARR,.MPIXML,"spml:dob")
D IFADD^XUIAMXML("adUPN",.MPIARR,.MPIXML,"spml:adUPN")
D IFADD^XUIAMXML("email",.MPIARR,.MPIXML,"spml:email")
D IFADD^XUIAMXML("disabled",.MPIARR,.MPIXML,"spml:disabled") ;disuser
D IFADD^XUIAMXML("termDate",.MPIARR,.MPIXML,"spml:termDate") ;termination date
D IFADD^XUIAMXML("pnid",.MPIARR,.MPIXML,"spml:ssn") ;ssn
D IFADD^XUIAMXML("secId",.MPIARR,.MPIXML,"spml:secId")
D IFADD^XUIAMXML("uid",.MPIARR,.MPIXML,"spml:uid")
D IFADD^XUIAMXML("npi",.MPIARR,.MPIXML,"spml:npi")
D IFADD^XUIAMXML("samAccountName",.MPIARR,.MPIXML,"spml:samAccountName")
D IFADD^XUIAMXML("lastAccess",.MPIARR,.MPIXML,"spml:lastAccess")
D IFADD^XUIAMXML("primaryMenuInfor",.MPIARR,.MPIXML,"spml:primaryMenuInfor") ;new fields
;
D IFADD^XUIAMXML("title",.MPIARR,.MPIXML,"spml:title")
D IFADD^XUIAMXML("termReason",.MPIARR,.MPIXML,"spml:termReason")
D IFADD^XUIAMXML("prohibTime",.MPIARR,.MPIXML,"spml:prohibTime")
D IFADD^XUIAMXML("verifyChangeDate",.MPIARR,.MPIXML,"spml:verifyChangeDate")
D IFADD^XUIAMXML("addStreetLine1",.MPIARR,.MPIXML,"spml:addStreetLine1")
D IFADD^XUIAMXML("addStreetLine2",.MPIARR,.MPIXML,"spml:addStreetLine2")
D IFADD^XUIAMXML("addStreetLine3",.MPIARR,.MPIXML,"spml:addStreetLine3")
D IFADD^XUIAMXML("addCity",.MPIARR,.MPIXML,"spml:addCity")
D IFADD^XUIAMXML("addState",.MPIARR,.MPIXML,"spml:addState")
D IFADD^XUIAMXML("addZip",.MPIARR,.MPIXML,"spml:addZip")
D IFADD^XUIAMXML("workPhone",.MPIARR,.MPIXML,"spml:workPhone")
D IFADD^XUIAMXML("workFax",.MPIARR,.MPIXML,"spml:workFax")
D IFADD^XUIAMXML("createDate",.MPIARR,.MPIXML,"spml:createDate")
D IFADD^XUIAMXML("npiStatus",.MPIARR,.MPIXML,"spml:npiStatus")
;
D IFADD^XUIAMXML("xusLogCount",.MPIARR,.MPIXML,"spml:xusLogCount")
D IFADD^XUIAMXML("xusActive",.MPIARR,.MPIXML,"spml:xusActive")
D IFADD^XUIAMXML("lastEditDate",.MPIARR,.MPIXML,"spml:lastEditDate")
D IFADD^XUIAMXML("lockoutDate",.MPIARR,.MPIXML,"spml:lockoutDate")
D IFADD^XUIAMXML("service",.MPIARR,.MPIXML,"spml:service")
D IFADD^XUIAMXML("authWriteMedOrder",.MPIARR,.MPIXML,"spml:authWriteMedOrder")
D IFADD^XUIAMXML("detoxMaintID",.MPIARR,.MPIXML,"spml:detoxMaintID")
D IFADD^XUIAMXML("dea",.MPIARR,.MPIXML,"spml:dea")
D IFADD^XUIAMXML("deaExpireDate",.MPIARR,.MPIXML,"spml:deaExpireDate")
D IFADD^XUIAMXML("inactDate",.MPIARR,.MPIXML,"spml:inactDate")
D IFADD^XUIAMXML("providerClass",.MPIARR,.MPIXML,"spml:providerClass")
D IFADD^XUIAMXML("providerType",.MPIARR,.MPIXML,"spml:providerType")
D IFADD^XUIAMXML("Remarks",.MPIARR,.MPIXML,"spml:Remarks")
D IFADD^XUIAMXML("nonVAPrescriber",.MPIARR,.MPIXML,"spml:nonVAPrescriber")
D IFADD^XUIAMXML("taxID",.MPIARR,.MPIXML,"spml:taxID")
D IFADD^XUIAMXML("schedIINarc",.MPIARR,.MPIXML,"spml:schedIINarc")
D IFADD^XUIAMXML("schedIINonNarc",.MPIARR,.MPIXML,"spml:schedIINonNarc")
D IFADD^XUIAMXML("schedIIINonNarc",.MPIARR,.MPIXML,"spml:schedIIINonNarc")
D IFADD^XUIAMXML("schedIIINarc",.MPIARR,.MPIXML,"spml:schedIIINarc")
D IFADD^XUIAMXML("schedIV",.MPIARR,.MPIXML,"spml:schedIV")
D IFADD^XUIAMXML("schedV",.MPIARR,.MPIXML,"spml:schedV")
;
;multiple values
;NPI
I $G(MPIARR("npiMulti",1))'=""&($G(MPIARR("npiMulti",1))'?."^") S CT=0 F S CT=$O(MPIARR("npiMulti",CT)) Q:CT="" D
.S MPIXML=MPIXML_"<spml:npiInfo>"
.;NPI MULTIPLE EFFECTIVE DATE^STATUS^NPI
.I $P(MPIARR("npiMulti",CT),"^")'="" S MPIXML=MPIXML_"<spml:npiEffectDate>"_$P(MPIARR("npiMulti",CT),"^")_"</spml:npiEffectDate >"
.I $P(MPIARR("npiMulti",CT),"^",2)'="" S MPIXML=MPIXML_"<spml:npiStatus>"_$P(MPIARR("npiMulti",CT),"^",2)_"</spml:npiStatus >"
.I $P(MPIARR("npiMulti",CT),"^",3)'="" S MPIXML=MPIXML_"<spml:npi>"_$P(MPIARR("npiMulti",CT),"^",3)_"</spml:npi>"
.S MPIXML=MPIXML_"</spml:npiInfo>"
;
;DIVISION - STATION#^name^DEFAULT
I $G(MPIARR("division",1))'=""&($G(MPIARR("division",1))'?."^") S CT=0 F S CT=$O(MPIARR("division",CT)) Q:CT="" D
.S MPIXML=MPIXML_"<spml:divisionInfo>"
.I $P(MPIARR("division",CT),"^")'="" S MPIXML=MPIXML_"<spml:stationNumber>"_$P(MPIARR("division",CT),"^")_"</spml:stationNumber>"
.I $P(MPIARR("division",CT),"^",2)'="" S MPIXML=MPIXML_"<spml:stationName>"_$P(MPIARR("division",CT),"^",2)_"</spml:stationName>"
.I $P(MPIARR("division",CT),"^",3)'="" S MPIXML=MPIXML_"<spml:defaultDivision>"_$P(MPIARR("division",CT),"^",3)_"</spml:defaultDivision>"
.S MPIXML=MPIXML_"</spml:divisionInfo>"
;
;SECONDARY MENU - menu name
I $G(MPIARR("secondary",1))'=""&($G(MPIARR("secondary",1))'?."^") S CT=0 F S CT=$O(MPIARR("secondary",CT)) Q:CT="" D
.S MPIXML=MPIXML_"<spml:secondaryMenuInfo>"
.I $P(MPIARR("secondary",CT),"^")'="" S MPIXML=MPIXML_"<spml:secondaryMenu>"_$P(MPIARR("secondary",CT),"^")_"</spml:secondaryMenu>"
.S MPIXML=MPIXML_"</spml:secondaryMenuInfo>"
;
;KEYS - keyname^who assigned duz^whos assigned name^date when assigned^review date
I $G(MPIARR("keys",1))'=""&($G(MPIARR("keys",1))'?."^") S CT=0 F S CT=$O(MPIARR("keys",CT)) Q:CT="" D
.S MPIXML=MPIXML_"<spml:keyInfo>"
.I $P(MPIARR("keys",CT),"^")'="" S MPIXML=MPIXML_"<spml:keyName>"_$P(MPIARR("keys",CT),"^")_"</spml:keyName>"
.I $P(MPIARR("keys",CT),"^",2)'="" S MPIXML=MPIXML_"<spml:assignByDUZ>"_$P(MPIARR("keys",CT),"^",2)_"</spml:assignByDUZ>"
.I $P(MPIARR("keys",CT),"^",3)'="" S MPIXML=MPIXML_"<spml:assignByName>"_$P(MPIARR("keys",CT),"^",3)_"</spml:assignByName>"
.I $P(MPIARR("keys",CT),"^",4)'="" S MPIXML=MPIXML_"<spml:dateAssigned>"_$P(MPIARR("keys",CT),"^",4)_"</spml:dateAssigned>"
.I $P(MPIARR("keys",CT),"^",5)'="" S MPIXML=MPIXML_"<spml:reviewDate>"_$P(MPIARR("keys",CT),"^",5)_"</spml:reviewDate>"
.S MPIXML=MPIXML_"</spml:keyInfo>"
;
;VISIT MULTIPLE - STATION NUMBER, NAME OF SITE, DUZ AT SITE, FIRST DATE VISIT, LAST DATE VISIT, PHONE AT SITE
I $G(MPIARR("visits",1))'=""&($G(MPIARR("visits",1))'?."^") S CT=0 F S CT=$O(MPIARR("visits",CT)) Q:CT="" D
.S MPIXML=MPIXML_"<spml:visitsInfo>"
.I $P(MPIARR("visits",CT),"^")'="" S MPIXML=MPIXML_"<spml:stationNumber>"_$P(MPIARR("visits",CT),"^")_"</spml:stationNumber>"
.I $P(MPIARR("visits",CT),"^",2)'="" S MPIXML=MPIXML_"<spml:stationName>"_$P(MPIARR("visits",CT),"^",2)_"</spml:stationName>"
.I $P(MPIARR("visits",CT),"^",3)'="" S MPIXML=MPIXML_"<spml:siteDUZ>"_$P(MPIARR("visits",CT),"^",3)_"</spml:siteDUZ>"
.I $P(MPIARR("visits",CT),"^",4)'="" S MPIXML=MPIXML_"<spml:firstVisitDate>"_$P(MPIARR("visits",CT),"^",4)_"</spml:firstVisitDate>"
.I $P(MPIARR("visits",CT),"^",5)'="" S MPIXML=MPIXML_"<spml:lastVisitDate>"_$P(MPIARR("visits",CT),"^",5)_"</spml:lastVisitDate>"
.I $P(MPIARR("visits",CT),"^",6)'="" S MPIXML=MPIXML_"<spml:sitePhone>"_$P(MPIARR("visits",CT),"^",6)_"</spml:sitePhone>"
.S MPIXML=MPIXML_"</spml:visitsInfo>"
;
;PERSON CLASS MULIPLE - CLASS NAME, EFFECTIVE DATE, EXPIRE DATE
I $G(MPIARR("personClass",1))'=""&($G(MPIARR("personClass",1))'?."^") S CT=0 F S CT=$O(MPIARR("personClass",CT)) Q:CT="" D
.S MPIXML=MPIXML_"<spml:personClassInfo>"
.I $P(MPIARR("personClass",CT),"^")'="" S MPIXML=MPIXML_"<spml:personClass>"_$P(MPIARR("personClass",CT),"^")_"</spml:personClass>"
.I $P(MPIARR("personClass",CT),"^",2)'="" S MPIXML=MPIXML_"<spml:effectDate>"_$P(MPIARR("personClass",CT),"^",2)_"</spml:effectDate>"
.I $P(MPIARR("personClass",CT),"^",3)'="" S MPIXML=MPIXML_"<spml:expireDate>"_$P(MPIARR("personClass",CT),"^",3)_"</spml:expireDate>"
.S MPIXML=MPIXML_"</spml:personClassInfo>"
;
;DEA# MULTIPLE - dea#^INDIVIDUAL DEA SUFFIX^DEA POINTER
I $G(MPIARR("deaMulti",1))'=""&($G(MPIARR("deaMulti",1))'?."^") S CT=0 F S CT=$O(MPIARR("deaMulti",CT)) Q:CT="" D
.S MPIXML=MPIXML_"<spml:deaMultiInfo>"
.I $P(MPIARR("deaMulti",CT),"^")'="" S MPIXML=MPIXML_"<spml:deaNumber>"_$P(MPIARR("deaMulti",CT),"^")_"</spml:deaNumber>"
.I $P(MPIARR("deaMulti",CT),"^",2)'="" S MPIXML=MPIXML_"<spml:deaSuffix>"_$P(MPIARR("deaMulti",CT),"^",2)_"</spml:deaSuffix>"
.I $P(MPIARR("deaMulti",CT),"^",3)'="" S MPIXML=MPIXML_"<spml:deaPoint>"_$P(MPIARR("deaMulti",CT),"^",3)_"</spml:deaPoint>"
.S MPIXML=MPIXML_"</spml:deaMultiInfo>"
;
S MPIXML=MPIXML_"</spml:user>"
S MPIXML=MPIXML_"</spml:data>"
S MPIXML=MPIXML_"<spml:capabilityData>"
S MPIXML=MPIXML_"<spml:operationData requestor="_QUOTE_MPIARR("WHO")_QUOTE_">"
S MPIXML=MPIXML_"</spml:operationData>"
S MPIXML=MPIXML_"</spml:capabilityData>"
I MPIARR("REQTYPE")="MODIFY" S MPIXML=MPIXML_"</spml:modification>"
S MPIXML=MPIXML_"</spml:"_$S(MPIARR("REQTYPE")="ADD":"addRequest",1:"modifyRequest")_">"
Q MPIXML
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HXUIAMXML2 10712 printed Sep 23, 2025@19:45:51 Page 2
XUIAMXML2 ;BHM/DLR,DRI - IAM ENTERPRISE NEW PERSON PROBABILISTIC SEARCH ;1/20/23 10:39
+1 ;;8.0;KERNEL;**799**;Jul 10, 1995;Build 3
+2 ;;Per VHA Directive 2004-038, this routine should not be modified
+3 ;
+4 ;Utilizes SPML (Service Provisioning Markup Language) for IAM lookup to
+5 ;PSIM (Person Services Identity Management)
+6 ;
+7 ;**731, VAMPI-8214 (dri) - create api to lookup user by secid and retrieve user traits **799 VAMPI-22625
+8 ;
AXMLBLD(MPIARR) ; setup xml to add or modify a user
+1 ; Input: MPIARR - Array of traits for add or modify
+2 ; Output: XML for the add or modify
+3 ; $$SITE^VASITE - IA #10112
+4 ;
+5 NEW MPIPRID,MPISITE,MPIXML,QUOTE,CT
+6 ;station number
SET QUOTE=""""
SET MPISITE=$PIECE($$SITE^VASITE,"^",3)
+7 ;'p'roduction or 't'est
SET MPIPRID=$PIECE($$PARAM^HLCS2,"^",3)
+8 ; heading
+9 SET MPIXML="<spml:"_$SELECT(MPIARR("REQTYPE")="ADD":"addRequest",1:"modifyRequest")_" xmlns:spml="_QUOTE_"urn:oasis:names:tc:SPML:2:0"_QUOTE_" requestID="_QUOTE_$$MSGID^XUIAMXML()_QUOTE_">"
+10 SET MPIXML=MPIXML_"<spml:psoID ID="_QUOTE_MPIARR("vistaid")_QUOTE_"></spml:psoID>"
+11 IF MPIARR("REQTYPE")="MODIFY"
SET MPIXML=MPIXML_"<spml:modification modificationMode="_QUOTE_"replace"_QUOTE_">"
+12 SET MPIXML=MPIXML_"<spml:data>"
+13 SET MPIXML=MPIXML_"<spml:user>"
+14 SET MPIXML=MPIXML_"<spml:environment>"_MPIPRID_"</spml:environment>"
+15 ;don't default in subjectOrg or orgId, should be returned by psim
+16 ;S MPIXML=MPIXML_"<spml:subjectOrg>Department Of Veterans Affairs</spml:subjectOrg>"
DO IFADD^XUIAMXML("subjectOrg",.MPIARR,.MPIXML,"spml:subjectOrg")
+17 ;S MPIXML=MPIXML_"<spml:orgId>urn:oid:2.16.840.1.113883.4.349</spml:orgId>"
DO IFADD^XUIAMXML("orgId",.MPIARR,.MPIXML,"spml:orgId")
+18 ; user data
+19 DO IFADD^XUIAMXML("firstName",.MPIARR,.MPIXML,"spml:firstName")
+20 DO IFADD^XUIAMXML("middleName",.MPIARR,.MPIXML,"spml:middleName")
+21 DO IFADD^XUIAMXML("lastName",.MPIARR,.MPIXML,"spml:lastName")
+22 ;new fields
DO IFADD^XUIAMXML("prefixName",.MPIARR,.MPIXML,"spml:prefixName")
+23 ;new fields
DO IFADD^XUIAMXML("suffixName",.MPIARR,.MPIXML,"spml:suffixName")
+24 ;new fields
DO IFADD^XUIAMXML("degree",.MPIARR,.MPIXML,"spml:degree")
+25 ;
+26 DO IFADD^XUIAMXML("gender",.MPIARR,.MPIXML,"spml:gender")
+27 DO IFADD^XUIAMXML("dob",.MPIARR,.MPIXML,"spml:dob")
+28 DO IFADD^XUIAMXML("adUPN",.MPIARR,.MPIXML,"spml:adUPN")
+29 DO IFADD^XUIAMXML("email",.MPIARR,.MPIXML,"spml:email")
+30 ;disuser
DO IFADD^XUIAMXML("disabled",.MPIARR,.MPIXML,"spml:disabled")
+31 ;termination date
DO IFADD^XUIAMXML("termDate",.MPIARR,.MPIXML,"spml:termDate")
+32 ;ssn
DO IFADD^XUIAMXML("pnid",.MPIARR,.MPIXML,"spml:ssn")
+33 DO IFADD^XUIAMXML("secId",.MPIARR,.MPIXML,"spml:secId")
+34 DO IFADD^XUIAMXML("uid",.MPIARR,.MPIXML,"spml:uid")
+35 DO IFADD^XUIAMXML("npi",.MPIARR,.MPIXML,"spml:npi")
+36 DO IFADD^XUIAMXML("samAccountName",.MPIARR,.MPIXML,"spml:samAccountName")
+37 DO IFADD^XUIAMXML("lastAccess",.MPIARR,.MPIXML,"spml:lastAccess")
+38 ;new fields
DO IFADD^XUIAMXML("primaryMenuInfor",.MPIARR,.MPIXML,"spml:primaryMenuInfor")
+39 ;
+40 DO IFADD^XUIAMXML("title",.MPIARR,.MPIXML,"spml:title")
+41 DO IFADD^XUIAMXML("termReason",.MPIARR,.MPIXML,"spml:termReason")
+42 DO IFADD^XUIAMXML("prohibTime",.MPIARR,.MPIXML,"spml:prohibTime")
+43 DO IFADD^XUIAMXML("verifyChangeDate",.MPIARR,.MPIXML,"spml:verifyChangeDate")
+44 DO IFADD^XUIAMXML("addStreetLine1",.MPIARR,.MPIXML,"spml:addStreetLine1")
+45 DO IFADD^XUIAMXML("addStreetLine2",.MPIARR,.MPIXML,"spml:addStreetLine2")
+46 DO IFADD^XUIAMXML("addStreetLine3",.MPIARR,.MPIXML,"spml:addStreetLine3")
+47 DO IFADD^XUIAMXML("addCity",.MPIARR,.MPIXML,"spml:addCity")
+48 DO IFADD^XUIAMXML("addState",.MPIARR,.MPIXML,"spml:addState")
+49 DO IFADD^XUIAMXML("addZip",.MPIARR,.MPIXML,"spml:addZip")
+50 DO IFADD^XUIAMXML("workPhone",.MPIARR,.MPIXML,"spml:workPhone")
+51 DO IFADD^XUIAMXML("workFax",.MPIARR,.MPIXML,"spml:workFax")
+52 DO IFADD^XUIAMXML("createDate",.MPIARR,.MPIXML,"spml:createDate")
+53 DO IFADD^XUIAMXML("npiStatus",.MPIARR,.MPIXML,"spml:npiStatus")
+54 ;
+55 DO IFADD^XUIAMXML("xusLogCount",.MPIARR,.MPIXML,"spml:xusLogCount")
+56 DO IFADD^XUIAMXML("xusActive",.MPIARR,.MPIXML,"spml:xusActive")
+57 DO IFADD^XUIAMXML("lastEditDate",.MPIARR,.MPIXML,"spml:lastEditDate")
+58 DO IFADD^XUIAMXML("lockoutDate",.MPIARR,.MPIXML,"spml:lockoutDate")
+59 DO IFADD^XUIAMXML("service",.MPIARR,.MPIXML,"spml:service")
+60 DO IFADD^XUIAMXML("authWriteMedOrder",.MPIARR,.MPIXML,"spml:authWriteMedOrder")
+61 DO IFADD^XUIAMXML("detoxMaintID",.MPIARR,.MPIXML,"spml:detoxMaintID")
+62 DO IFADD^XUIAMXML("dea",.MPIARR,.MPIXML,"spml:dea")
+63 DO IFADD^XUIAMXML("deaExpireDate",.MPIARR,.MPIXML,"spml:deaExpireDate")
+64 DO IFADD^XUIAMXML("inactDate",.MPIARR,.MPIXML,"spml:inactDate")
+65 DO IFADD^XUIAMXML("providerClass",.MPIARR,.MPIXML,"spml:providerClass")
+66 DO IFADD^XUIAMXML("providerType",.MPIARR,.MPIXML,"spml:providerType")
+67 DO IFADD^XUIAMXML("Remarks",.MPIARR,.MPIXML,"spml:Remarks")
+68 DO IFADD^XUIAMXML("nonVAPrescriber",.MPIARR,.MPIXML,"spml:nonVAPrescriber")
+69 DO IFADD^XUIAMXML("taxID",.MPIARR,.MPIXML,"spml:taxID")
+70 DO IFADD^XUIAMXML("schedIINarc",.MPIARR,.MPIXML,"spml:schedIINarc")
+71 DO IFADD^XUIAMXML("schedIINonNarc",.MPIARR,.MPIXML,"spml:schedIINonNarc")
+72 DO IFADD^XUIAMXML("schedIIINonNarc",.MPIARR,.MPIXML,"spml:schedIIINonNarc")
+73 DO IFADD^XUIAMXML("schedIIINarc",.MPIARR,.MPIXML,"spml:schedIIINarc")
+74 DO IFADD^XUIAMXML("schedIV",.MPIARR,.MPIXML,"spml:schedIV")
+75 DO IFADD^XUIAMXML("schedV",.MPIARR,.MPIXML,"spml:schedV")
+76 ;
+77 ;multiple values
+78 ;NPI
+79 IF $GET(MPIARR("npiMulti",1))'=""&($GET(MPIARR("npiMulti",1))'?."^")
SET CT=0
FOR
SET CT=$ORDER(MPIARR("npiMulti",CT))
if CT=""
QUIT
Begin DoDot:1
+80 SET MPIXML=MPIXML_"<spml:npiInfo>"
+81 ;NPI MULTIPLE EFFECTIVE DATE^STATUS^NPI
+82 IF $PIECE(MPIARR("npiMulti",CT),"^")'=""
SET MPIXML=MPIXML_"<spml:npiEffectDate>"_$PIECE(MPIARR("npiMulti",CT),"^")_"</spml:npiEffectDate >"
+83 IF $PIECE(MPIARR("npiMulti",CT),"^",2)'=""
SET MPIXML=MPIXML_"<spml:npiStatus>"_$PIECE(MPIARR("npiMulti",CT),"^",2)_"</spml:npiStatus >"
+84 IF $PIECE(MPIARR("npiMulti",CT),"^",3)'=""
SET MPIXML=MPIXML_"<spml:npi>"_$PIECE(MPIARR("npiMulti",CT),"^",3)_"</spml:npi>"
+85 SET MPIXML=MPIXML_"</spml:npiInfo>"
End DoDot:1
+86 ;
+87 ;DIVISION - STATION#^name^DEFAULT
+88 IF $GET(MPIARR("division",1))'=""&($GET(MPIARR("division",1))'?."^")
SET CT=0
FOR
SET CT=$ORDER(MPIARR("division",CT))
if CT=""
QUIT
Begin DoDot:1
+89 SET MPIXML=MPIXML_"<spml:divisionInfo>"
+90 IF $PIECE(MPIARR("division",CT),"^")'=""
SET MPIXML=MPIXML_"<spml:stationNumber>"_$PIECE(MPIARR("division",CT),"^")_"</spml:stationNumber>"
+91 IF $PIECE(MPIARR("division",CT),"^",2)'=""
SET MPIXML=MPIXML_"<spml:stationName>"_$PIECE(MPIARR("division",CT),"^",2)_"</spml:stationName>"
+92 IF $PIECE(MPIARR("division",CT),"^",3)'=""
SET MPIXML=MPIXML_"<spml:defaultDivision>"_$PIECE(MPIARR("division",CT),"^",3)_"</spml:defaultDivision>"
+93 SET MPIXML=MPIXML_"</spml:divisionInfo>"
End DoDot:1
+94 ;
+95 ;SECONDARY MENU - menu name
+96 IF $GET(MPIARR("secondary",1))'=""&($GET(MPIARR("secondary",1))'?."^")
SET CT=0
FOR
SET CT=$ORDER(MPIARR("secondary",CT))
if CT=""
QUIT
Begin DoDot:1
+97 SET MPIXML=MPIXML_"<spml:secondaryMenuInfo>"
+98 IF $PIECE(MPIARR("secondary",CT),"^")'=""
SET MPIXML=MPIXML_"<spml:secondaryMenu>"_$PIECE(MPIARR("secondary",CT),"^")_"</spml:secondaryMenu>"
+99 SET MPIXML=MPIXML_"</spml:secondaryMenuInfo>"
End DoDot:1
+100 ;
+101 ;KEYS - keyname^who assigned duz^whos assigned name^date when assigned^review date
+102 IF $GET(MPIARR("keys",1))'=""&($GET(MPIARR("keys",1))'?."^")
SET CT=0
FOR
SET CT=$ORDER(MPIARR("keys",CT))
if CT=""
QUIT
Begin DoDot:1
+103 SET MPIXML=MPIXML_"<spml:keyInfo>"
+104 IF $PIECE(MPIARR("keys",CT),"^")'=""
SET MPIXML=MPIXML_"<spml:keyName>"_$PIECE(MPIARR("keys",CT),"^")_"</spml:keyName>"
+105 IF $PIECE(MPIARR("keys",CT),"^",2)'=""
SET MPIXML=MPIXML_"<spml:assignByDUZ>"_$PIECE(MPIARR("keys",CT),"^",2)_"</spml:assignByDUZ>"
+106 IF $PIECE(MPIARR("keys",CT),"^",3)'=""
SET MPIXML=MPIXML_"<spml:assignByName>"_$PIECE(MPIARR("keys",CT),"^",3)_"</spml:assignByName>"
+107 IF $PIECE(MPIARR("keys",CT),"^",4)'=""
SET MPIXML=MPIXML_"<spml:dateAssigned>"_$PIECE(MPIARR("keys",CT),"^",4)_"</spml:dateAssigned>"
+108 IF $PIECE(MPIARR("keys",CT),"^",5)'=""
SET MPIXML=MPIXML_"<spml:reviewDate>"_$PIECE(MPIARR("keys",CT),"^",5)_"</spml:reviewDate>"
+109 SET MPIXML=MPIXML_"</spml:keyInfo>"
End DoDot:1
+110 ;
+111 ;VISIT MULTIPLE - STATION NUMBER, NAME OF SITE, DUZ AT SITE, FIRST DATE VISIT, LAST DATE VISIT, PHONE AT SITE
+112 IF $GET(MPIARR("visits",1))'=""&($GET(MPIARR("visits",1))'?."^")
SET CT=0
FOR
SET CT=$ORDER(MPIARR("visits",CT))
if CT=""
QUIT
Begin DoDot:1
+113 SET MPIXML=MPIXML_"<spml:visitsInfo>"
+114 IF $PIECE(MPIARR("visits",CT),"^")'=""
SET MPIXML=MPIXML_"<spml:stationNumber>"_$PIECE(MPIARR("visits",CT),"^")_"</spml:stationNumber>"
+115 IF $PIECE(MPIARR("visits",CT),"^",2)'=""
SET MPIXML=MPIXML_"<spml:stationName>"_$PIECE(MPIARR("visits",CT),"^",2)_"</spml:stationName>"
+116 IF $PIECE(MPIARR("visits",CT),"^",3)'=""
SET MPIXML=MPIXML_"<spml:siteDUZ>"_$PIECE(MPIARR("visits",CT),"^",3)_"</spml:siteDUZ>"
+117 IF $PIECE(MPIARR("visits",CT),"^",4)'=""
SET MPIXML=MPIXML_"<spml:firstVisitDate>"_$PIECE(MPIARR("visits",CT),"^",4)_"</spml:firstVisitDate>"
+118 IF $PIECE(MPIARR("visits",CT),"^",5)'=""
SET MPIXML=MPIXML_"<spml:lastVisitDate>"_$PIECE(MPIARR("visits",CT),"^",5)_"</spml:lastVisitDate>"
+119 IF $PIECE(MPIARR("visits",CT),"^",6)'=""
SET MPIXML=MPIXML_"<spml:sitePhone>"_$PIECE(MPIARR("visits",CT),"^",6)_"</spml:sitePhone>"
+120 SET MPIXML=MPIXML_"</spml:visitsInfo>"
End DoDot:1
+121 ;
+122 ;PERSON CLASS MULIPLE - CLASS NAME, EFFECTIVE DATE, EXPIRE DATE
+123 IF $GET(MPIARR("personClass",1))'=""&($GET(MPIARR("personClass",1))'?."^")
SET CT=0
FOR
SET CT=$ORDER(MPIARR("personClass",CT))
if CT=""
QUIT
Begin DoDot:1
+124 SET MPIXML=MPIXML_"<spml:personClassInfo>"
+125 IF $PIECE(MPIARR("personClass",CT),"^")'=""
SET MPIXML=MPIXML_"<spml:personClass>"_$PIECE(MPIARR("personClass",CT),"^")_"</spml:personClass>"
+126 IF $PIECE(MPIARR("personClass",CT),"^",2)'=""
SET MPIXML=MPIXML_"<spml:effectDate>"_$PIECE(MPIARR("personClass",CT),"^",2)_"</spml:effectDate>"
+127 IF $PIECE(MPIARR("personClass",CT),"^",3)'=""
SET MPIXML=MPIXML_"<spml:expireDate>"_$PIECE(MPIARR("personClass",CT),"^",3)_"</spml:expireDate>"
+128 SET MPIXML=MPIXML_"</spml:personClassInfo>"
End DoDot:1
+129 ;
+130 ;DEA# MULTIPLE - dea#^INDIVIDUAL DEA SUFFIX^DEA POINTER
+131 IF $GET(MPIARR("deaMulti",1))'=""&($GET(MPIARR("deaMulti",1))'?."^")
SET CT=0
FOR
SET CT=$ORDER(MPIARR("deaMulti",CT))
if CT=""
QUIT
Begin DoDot:1
+132 SET MPIXML=MPIXML_"<spml:deaMultiInfo>"
+133 IF $PIECE(MPIARR("deaMulti",CT),"^")'=""
SET MPIXML=MPIXML_"<spml:deaNumber>"_$PIECE(MPIARR("deaMulti",CT),"^")_"</spml:deaNumber>"
+134 IF $PIECE(MPIARR("deaMulti",CT),"^",2)'=""
SET MPIXML=MPIXML_"<spml:deaSuffix>"_$PIECE(MPIARR("deaMulti",CT),"^",2)_"</spml:deaSuffix>"
+135 IF $PIECE(MPIARR("deaMulti",CT),"^",3)'=""
SET MPIXML=MPIXML_"<spml:deaPoint>"_$PIECE(MPIARR("deaMulti",CT),"^",3)_"</spml:deaPoint>"
+136 SET MPIXML=MPIXML_"</spml:deaMultiInfo>"
End DoDot:1
+137 ;
+138 SET MPIXML=MPIXML_"</spml:user>"
+139 SET MPIXML=MPIXML_"</spml:data>"
+140 SET MPIXML=MPIXML_"<spml:capabilityData>"
+141 SET MPIXML=MPIXML_"<spml:operationData requestor="_QUOTE_MPIARR("WHO")_QUOTE_">"
+142 SET MPIXML=MPIXML_"</spml:operationData>"
+143 SET MPIXML=MPIXML_"</spml:capabilityData>"
+144 IF MPIARR("REQTYPE")="MODIFY"
SET MPIXML=MPIXML_"</spml:modification>"
+145 SET MPIXML=MPIXML_"</spml:"_$SELECT(MPIARR("REQTYPE")="ADD":"addRequest",1:"modifyRequest")_">"
+146 QUIT MPIXML
+147 ;