1. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 4/4/2019 2:57:40 PM Central Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

1.1 Files compared

# Location File Last Modified
1 C:\AraxisMergeCompare\Pri_un\VHIE_VDIF\AccessGateway\CDA_Gateway\CustomClasses HS.Local.VA.HS.Access.CDA.xml Tue Apr 2 18:53:43 2019 UTC
2 C:\AraxisMergeCompare\Pri_re\eHealth Exchange Enhancements Phase 2-redacted\VHIE_VDIF\AccessGateway\CDA_Gateway\CustomClasses HS.Local.VA.HS.Access.CDA.xml Wed Apr 3 12:41:16 2019 UTC

1.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 10 4204
Changed 9 66
Inserted 0 0
Removed 0 0

1.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

1.4 Active regular expressions

No regular expressions were active.

1.5 Comparison detail

  1   <?xml 
  2     version="1 .0" 
  3     encoding=" UTF-8"
  4   ?>
  5   <Export 
  6     generator= "Cache" 
  7     version="2 5" 
  8     zv="Cache  for UNIX ( Red Hat En terprise L inux for x 86-64) 201 7.1.3 (Bui ld 317_0_1 8518U)" 
  9     ts="2019-0 2-08 12:36 :30"
  10   >
  11     <Class 
  12      name="HS.L ocal.VA.HS .Access.CD A.HS.Gatew ay.Access. Manager"
  13     >
  14      <Super>
  15       HS.Gateway .Access.Ma nager
  16      </Super>
  17      <TimeChang ed>
  18       65051,4108 4.312694
  19      </TimeChan ged>
  20      <TimeCreat ed>
  21       65016,3115 6.021544
  22      </TimeCrea ted>
  23     
  24      <Method 
  25       name="Batc hFetchRequ estAsync"
  26      >
  27       <FormalSpe c>
  28        <![CDATA[p Request:HS .Message.P atientBatc hFetchRequ estAsync,& pResponse: HS.Message .PatientBa tchFetchRe sponseAsyn c]]>
  29       </FormalSp ec>
  30       <ReturnTyp e>
  31        %Status
  32       </ReturnTy pe>
  33       <Implement ation>
  34        <![CDATA[
  35                #d im tSC As  %Status
  36                #d im tIdent  As HS.Type s.Identifi er
  37                #d im tAddr A s HS.Types .Address
  38                #d im tTele A s HS.Types .Telecom
  39                $$ $HSPerfSta rt("Sendin g Async Ba tch Fetch  Requests")
  40                Se t tSC=$$$O K,$ZT="Tra p"
  41                Se t tSequenc e=$I(^HS.F etchStatus ), tAgKey= "T"_tSeque nce,tToken =""
  42                Se t tInitial Notified=0
  43                Do  {
  44                         Kill  %streamle tDoDefault ing
  45                         Set  tAudName=p Request.La stName_",  "_pRequest .FirstName
  46                         Set: pRequest.M iddleName' ="" tAudNa me=tAudNam e_" "_pReq uest.Middl eName
  47                         Set  pResponse= ##Class(HS .Message.P atientBatc hFetchResp onseAsync) .%New()
  48                         If ' $$$HSLicen sed("Compo site Healt h Record")  Set tSC=$ $Error^%ap iOBJ(6083, $ZE) Quit
  49                         //cr eate SDA f or inserti ng patient  demograph ics
  50                         //en able CodeT ableDetail  indexing  if using t he viewer
  51                         If $ $$IsViewer Running,'p Request.Ag gregateOnl y { Kill % codetables 3 Set %cod etables3=0  } 
  52                         Set  tPat=##Cla ss(HS.SDA3 .Patient). %New()
  53                         Set  tPat.MPIID =pRequest. MPIID
  54                         Set  tPat.Name. FamilyName =pRequest. LastName
  55                         Set  tPat.Name. GivenName= pRequest.F irstName
  56                         Set  tPat.Name. MiddleName =pRequest. MiddleName
  57                         Set  tPat.Name. NamePrefix =pRequest. Prefix
  58                         Set  tPat.Name. NameSuffix =pRequest. Suffix
  59                         Set  tPat.Mothe rsMaidenNa me=pReques t.MothersM aidenSurna me
  60                         Set  tPat.Prima ryLanguage .Code=pReq uest.Langu age
  61                         Set  tPat.Relig ion.Code=p Request.Re ligiousAff iliation
  62                         Set  tPat.Marit alStatus.C ode=pReque st.Marital Status
  63                         Set  tPat.Gende r.Code=pRe quest.Sex
  64                         Set  tPat.Exten sion=pRequ est.Extens ion
  65                         
  66                         //cu stom add b egin BW 01 /03/2018
  67                         Set  tPat.Exten sion.Autho ritativeRa ces=pReque st.Extensi on.Authori tativeRace s
  68                         
  69                         If ( pRequest.B irthPlace. City'="")| |(pRequest .BirthPlac e.State'=" ")||(pRequ est.BirthP lace.Count ry'="") {
  70                                  Set tB irthDetail =##class(H S.SDA3.Add ress).%New ()
  71                                  If (pR equest.Bir thPlace.Ci ty'="") {
  72                                           Set tBir thCity=##c lass(HS.SD A3.CodeTab leDetail.C ity).%New( )
  73                                           Set tBir thCity.Cod e = pReque st.BirthPl ace.City
  74                                           Set tBir thDetail.C ity = tBir thCity
  75                                  }
  76                                  If (pR equest.Bir thPlace.St ate'="") {
  77                                           Set tBir thState=## class(HS.S DA3.CodeTa bleDetail. State).%Ne w()
  78                                           Set tBir thState.Co de = pRequ est.BirthP lace.State
  79                                           Set tBir thDetail.S tate = tBi rthState
  80                                  }
  81                                  If (pR equest.Bir thPlace.Co untry'="")  {
  82                                           Set tBir thCountry= ##class(HS .SDA3.Code TableDetai l.Country) .%New()
  83                                           Set tBir thCountry. Code = pRe quest.Birt hPlace.Cou ntry
  84                                           Set tBir thDetail.C ountry = t BirthCount ry
  85                                  }
  86                                  Set tP at.BirthPl ace=tBirth Detail
  87                         }
  88                         //cu stom add e nd BW 01/0 3/2018
  89                         
  90                         //lo ad multipl e races fr om registr y, with op tional cod e table
  91                         Set  tCodeTable =##class(H S.Registry .Config).G etKeyValue ("\Registr y\Patient\ RaceCodeTa ble","")
  92                         For  tI=1:1:$L( pRequest.R ace,",") {
  93                                  Set tR aceDetail= ##class(HS .SDA3.Code TableDetai l.Race).%N ew()
  94                                  Set tR aceDetail. Code=$P(pR equest.Rac e,",",tI)
  95                                  If tCo deTable=""  {
  96                                           Set tRac eDetail.De scription= $Case(tRac eDetail.Co de,"I":"Am erican Ind ian","A":" Asian","B" :"Black"," H":"Hispan ic","W":"W hite",:"")
  97                                  } Else  {
  98                                           Set tCod eOb=##clas s(HS.Regis try.Codes) .IDKeyOpen ($ZCVT(tCo deTable,"U "),$ZCVT(t RaceDetail .Code,"U") )
  99                                           If $IsOb ject(tCode Ob) {
  100                                                    Set tRaceD etail.SDAC odingStand ard=tCodeT able
  101                                                    Set tRaceD etail.Desc ription=tC odeOb.Desc ription
  102                                           }
  103                                  }
  104                                  Do tPa t.Races.In sert(tRace Detail)
  105                                  Set:tI =1 tPat.Ra ce=tRaceDe tail
  106                         }
  107                         if ( pRequest.E thnicGroup '="") {
  108                                  Set tC odeTable=# #class(HS. Registry.C onfig).Get KeyValue(" \Registry\ Patient\Et hnicityCod eTable","" )
  109                                  Set tE thDetail=# #class(HS. SDA3.CodeT ableDetail .EthnicGro up).%New()
  110                                  Set tE thDetail.C ode=pReque st.EthnicG roup
  111                                  If tCo deTable=""  {
  112                                           // mappi ng based o n HS.UI.Re gistry.Pat ients:Ethn icValueLis t and Ethn icDisplayL ist
  113                                           Set tEth Detail.Des cription=$ Case(tEthD etail.Code ,"A":"Afri can","S":" Asian","E" :"European ","I":"Ind ian","L":" Latin Amer ican","M": "Middle Ea stern","P" :"Pacific  Islander", "O":"Other ",:"")
  114                                  } Else  {
  115                                           Set tCod eOb=##clas s(HS.Regis try.Codes) .IDKeyOpen ($ZCVT(tCo deTable,"U "),$ZCVT(t EthDetail. Code,"U"))
  116                                           If $IsOb ject(tCode Ob) {
  117                                                    Set tEthDe tail.SDACo dingStanda rd=tCodeTa ble
  118                                                    Set tEthDe tail.Descr iption=tCo deOb.Descr iption
  119                                           }
  120                                  }
  121                                  Set tP at.EthnicG roup=tEthD etail
  122                         }
  123                         Set  tDOB=pRequ est.DOB Se t:tDOB'="" &&(tDOB'[" ,") tDOB=t DOB_",0"
  124                         Set: tDOB'="" t Pat.BirthT ime=$ZDT(t DOB,3)
  125                         Set  tPat.Commu nicationPr eference=p Request.Co mmunicatio nPreferenc e
  126                         For  tI=1:1:pRe quest.Requ ests.Count () {
  127                                  Set tR equest=pRe quest.Requ ests.GetAt (tI)
  128                                  If tI= 1 { Set tP at.Entered At=..Coded Organizati on(tReques t.Facility ) }
  129                                  Set tN um=##class (HS.SDA3.P atientNumb er).%New()
  130                                  Set tN um.Number= tRequest.M RN
  131                                  Set tN um.Organiz ation=..Co dedOrganiz ation(tReq uest.Assig ningAuthor ity)
  132                                  Set tN um.NumberT ype="MRN"
  133                                  Do tPa t.PatientN umbers.Ins ert(tNum)
  134                         }
  135                         IF p Request.SS N'="" {
  136                                  Set tN um=##Class (HS.SDA3.P atientNumb er).%New()
  137                                  Set tN um.Number= pRequest.S SN
  138                                  Set tN um.NumberT ype="SSN"
  139                                  Do tPa t.PatientN umbers.Ins ert(tNum)
  140                         }
  141                         For  tI=1:1:pRe quest.Iden tifiers.Co unt() {
  142                                  Set tI dent=pRequ est.Identi fiers.GetA t(tI)
  143                                  Set tN um=##Class (HS.SDA3.P atientNumb er).%New()
  144                                  Set tN um.Number= tIdent.Ext ension
  145                                  Set tN um.NumberT ype=tIdent .Use
  146                                  If 'tN um.NumberT ypeIsValid (tNum.Numb erType) Se t tNum.Num berType="O TH"
  147                                  Set tN um.Organiz ation=..Co dedOrganiz ation(tIde nt.Assigni ngAuthorit yName)
  148                                  Do tPa t.PatientN umbers.Ins ert(tNum)
  149                         }
  150                         For  tI=1:1:pRe quest.Addr esses.Coun t() {
  151                                  Set tA ddr=pReque st.Address es.GetAt(t I)
  152                                  Set tA d=##Class( HS.SDA3.Ad dress).%Ne w()
  153                                  Set tA d.Street=t Addr.Stree tLine
  154                                  Set tA d.City.Cod e=tAddr.Ci ty, tAd.Ci ty.Descrip tion=tAddr .City
  155                                  Set tA d.State.Co de=tAddr.S tate, tAd. State.Desc ription=tA ddr.State
  156                                  Set tA d.Zip.Code =tAddr.Pos talCode, t Ad.Zip.Des cription=t Addr.Posta lCode
  157                                  Do tPa t.Addresse s.Insert(t Ad)
  158                         }
  159                         For  tI=1:1:pRe quest.Tele coms.Count () {
  160                                  Set tT ele=pReque st.Telecom s.GetAt(tI )
  161                                  Set tU se=tTele.U se
  162                                  IF tUs e="H"||(tU se="HP"),t Pat.Contac tInfo.Home PhoneNumbe r="" {Set  tPat.Conta ctInfo.Hom ePhoneNumb er=tTele.P honeNumber Full}
  163                                  IF tUs e="WP",tPa t.ContactI nfo.WorkPh oneNumber= "" {Set tP at.Contact Info.WorkP honeNumber =tTele.Pho neNumberFu ll}
  164                                  IF tTe le.Email'= "",tPat.Co ntactInfo. EmailAddre ss="" {Set  tPat.Cont actInfo.Em ailAddress =tTele.Ema il}
  165                         }
  166                         Set  tStrm=##cl ass(HS.SDA 3.Streamle t.Patient) .%New(),tS trm.SDA=tP at,tStrm.A ggregation Key=tAgKey
  167                         set  tStrm.Sour ceMRN=pReq uest.Facil ity_"^"_pR equest.Ass igningAuth ority_"^"_ pRequest.M RN
  168                         Set  tSC=tStrm. SaveStream let() Quit :$$$ISERR( tSC)
  169                         If ' pRequest.A ggregateOn ly {
  170                                  If $$$ IsViewerRu nning {
  171                                           Set tSC= ##class(we b.SDA3.Loa der).Initi alLoad(tAg Key,tStrm, pRequest.S essionId,. tToken)  K ill %codet ables3 Qui t:$$$ISERR (tSC)
  172                                  } Else  {Set tTok en=$LB(tAg Key)}
  173                         }
  174                         // Q ueue up a  purge for  non-API ba sed fetche s
  175                         // A PI based o nes are qu eued for p urge by th e query pr ocess, aft er the dat a has been  processed
  176                         If ' (pRequest. %IsA("HS.M essage.Pat ientBatchQ ueryReques tAsync"))  {
  177                                  Set ^H S.Viewer.A GPurgeQ("S ","S-"_pRe quest.Sess ionId,tAgK ey,$H)=""
  178                         }
  179                         Set  pResponse. Token=tTok en
  180                         Set  pResponse. Sequence=t Sequence,t Start=$ZU( 188)
  181                         Set  tThisGW=## Class(HS.G ateway.Con fig).NameI ndexOpen(# #Class(HS. Util.Insta ller.Confi gItem).Get ThisCompon entName()) .EndPoint
  182                         Lock  +^HS.Fetc hStatus(tS equence,"P end") //ne ed the loc k because  multiple j obs might  be updatin g the stat us
  183                         Set  ^HS.FetchS tatus(tSeq uence)=$LB (tToken,tS tart,tStar t,"","",pR equest.Ses sionId) // $LB(token, starttime, updatedtim e,complete time,abort time,sessi onID)
  184                         
  185                         If ' pRequest.A ggregateOn ly {
  186                                  Set tS C=..SendNo tify("Init ialize",tA gKey,tToke n) Quit:$$ $ISERR(tSC )  Set tIn itialNotif ied=1
  187                                  Do tSt rm.AGNotif y(tAgKey)
  188                         }
  189                         //Fo r each req uest in th e list, cr eate an as ync reques t thinger,  log it in  the globa l, fire of f remote o perations
  190                         Set  tAudMRNs=" ",tAudMPIs ="" //for  audit
  191                         For  tI=1:1:pRe quest.Requ ests.Count () {
  192                                  Set tR equest=##C lass(HS.Me ssage.Pati entFetchRe questAsync ).%New()
  193                                  Set tS C=tRequest .CopyFrom( pRequest.R equests.Ge tAt(tI),.t Request) Q uit:$$$ISE RR(tSC)
  194                                  Set tM RN=tReques t.Facility _"^"_tRequ est.MRN_"^ "_tRequest .Assigning Authority
  195                                  Set tA udMRNs=tAu dMRNs_$LB( tMRN)
  196                                  Set:'$ Listfind(t AudMPIs,tR equest.MPI ID) tAudMP Is=tAudMPI s_$LB(tReq uest.MPIID )
  197                                  Set tR equest.Add itionalInf o=pRequest .Requests. GetAt(tI). Additional Info //cop yfrom miss es that
  198                                  Set tR equest.SAM LData=pReq uest.Reque sts.GetAt( tI).SAMLDa ta
  199                                  Set tR equest.Fil ters=pRequ est.Reques ts.GetAt(t I).Filters  //and tha t
  200                                  Set tR equest.Seq uence=tSeq uence
  201                                  Set tR equest.Ret urnGateway =tThisGW
  202                                  Set tR equest.Tok en=$LG(tTo ken)
  203                                  Set tM atch=pRequ est.Reques ts.GetAt(t I)
  204                                  //copy  identifie rs
  205                                  For tJ =1:1:tMatc h.Identifi ers.Count( ) Do tRequ est.Identi fiers.Inse rt(tMatch. Identifier s.GetAt(tJ ))
  206                                  #; Use  the demog raphics fr om the fir st patient  request.
  207                                  If tI= 1 Set ^HS. FetchStatu s(tSequenc e,"Demogra phics",tMR N)=1
  208                                  Set ^H S.FetchSta tus(tSeque nce,"Pend" ,tMRN)="", ^HS.FetchS tatus(tSeq uence,"Que ue",tMRN)= ""
  209                                  Set ^H S.FetchSta tus(tSeque nce,"Stats ",tMRN)=$L B($zu(188) ,"","",0," ",1) //$LB (startfetc htime,star tloadtime, completeti me,# of en cs loaded, start date  of last e nc loaded, %status)
  210                                  Set tS C=..SendRe questAsync (..Gateway Operations ,tRequest)
  211                         }
  212                         If . .FetchRegi stryData {
  213                                  Set tR equest=##c lass(HS.Me ssage.Regi strySDAReq uest).%New (),tReques t.MPIID=pR equest.MPI ID
  214                                  Set tR equest.Not ifyOperati ons=..%Con figName, t Request.Se quence=tSe quence
  215                                  // Be  careful wi th changin g this MRN . Currentl y it is us ed by EPRF etchNotifi cation()
  216                                  // as  well as we b.SDA3.Loa der:OnAfte rContainer Load() (at  least)
  217                                  Set tM RN="Regist ry^Registr y^"
  218                                  Set ^H S.FetchSta tus(tSeque nce,"Pend" ,tMRN)="", ^HS.FetchS tatus(tSeq uence,"Que ue",tMRN)= ""
  219                                  Set ^H S.FetchSta tus(tSeque nce,"Stats ",tMRN)=$L B($zu(188) ,"","",0," ",1) //$LB (startfetc htime,star tloadtime, completeti me,# of en cs loaded, start date  of last e nc loaded, %status)
  220                                  Set tS C=..SendRe questSync( ..Registry Operations ,tRequest, .tResponse )
  221                                  IF $$$ ISERR(tSC)  {
  222                                           Set tRes ponse=##Cl ass(HS.Mes sage.EPRFe tchNotific ation).%Ne w(),tRespo nse.Status =tSC
  223                                  } Else  {
  224                                           Set tRes ponse.Faci lity="Regi stry",tRes ponse.MRN= "Registry" ,tResponse .Assigning Authority= "",tRespon se.Validat ed=1
  225                                           Set tRes ponse.Stat us=$$$OK
  226                                  }
  227                                  Set tS C=..EPRFet chNotifica tion(tResp onse,.tDum my)
  228                         }
  229                         Lock  -^HS.Fetc hStatus(tS equence,"P end")
  230                         Quit :$$$ISERR( tSC)
  231                         //Au dit the re quest
  232                         IF p Request.%I sA("HS.Mes sage.Patie ntBatchQue ryRequestA sync") {
  233                                  Set tS C=$$$HSAud itExportRe cords(.tLo gID,pReque st.Request Id,pReques t.Requesti ngUser,pRe quest.Requ estingUser Roles,pReq uest.Reque stingGatew ay,tAudMRN s,..%Sessi onId,pRequ est.Reques tingForPro xyUserID,t AudName,tA udMPIs)
  234                         } El se {
  235                                  Set tS C=$$$HSAud itViewReco rds(.tLogI D,pRequest .RequestId ,pRequest. Requesting User,pRequ est.Reques tingUserRo les,pReque st.Request ingGateway ,tAudMRNs, ..%Session Id,pReques t.Requesti ngForProxy UserID,tAu dName,tAud MPIs)
  236                         }
  237                         Quit :$$$ISERR( tSC)
  238                         //Lo op on .1 s econd boun dary until  wait time  has passe d or '$D(q ueue)
  239                         Set  tWaitPerio d=..WaitPe riod, tWai tTimeoutEr ror=..Wait TimeoutErr or
  240                         IF p Request.%I sA("HS.Mes sage.Patie ntBatchQue ryRequestA sync") {
  241                                  Set tW aitPeriod= pRequest.W aitPeriod,  tWaitTime outError=p Request.Wa itTimeoutE rror
  242                         }
  243                         For  tI=0:100:t WaitPeriod -1 Hang .1  Quit:'$D( ^HS.FetchS tatus(tSeq uence,"Que ue"))
  244                         Set  tMRN=""
  245                         Set  pResponse. Token=tTok en
  246                         For   {
  247                                  Set tM RN=$O(^HS. FetchStatu s(tSequenc e,"Stats", tMRN),1,tS tat) Quit: tMRN=""
  248                                  Do pRe sponse.Fac ility.Inse rt($P(tMRN ,"^"))
  249                                  IF $$$ ISERR($LG( tStat,6))  {
  250                                           Do pResp onse.Reque stStatus.I nsert($LG( tStat,6))
  251                                           Kill ^HS .FetchStat us(tSequen ce,"Pend", tMRN),^HS. FetchStatu s(tSequenc e,"Queue", tMRN)
  252                                  } ELSE IF '$D(^HS .FetchStat us(tSequen ce,"Pend", tMRN))!('t WaitTimeou tError) {
  253                                           DO pResp onse.Reque stStatus.I nsert($$$O K)
  254                                  } Else  {
  255                                           Set $Lis t(^HS.Fetc hStatus(tS equence),5 )=$ZU(188)  //abort a dditional  fetches
  256                                           Set tRes ult = $$$H SError($$$ HSErrReque stTimeout, $P(tMRN,"^ "),(tWaitP eriod/1000 ))
  257                                           Do pResp onse.Reque stStatus.I nsert(tRes ult)
  258                                  }
  259                         }
  260                }  While (0)
  261        Exit
  262                If  tInitialN otified{
  263                         If $ $$ISERR(tS C) {Do ..S endNotify( "Abort",tA gKey,tToke n,tSC)}
  264                         Else If $LG(^HS .FetchStat us(tSequen ce),5) {Do  ..SendNot ify("Abort ",tAgKey,t Token,$$$E RROR($$$HS ErrRequest Timeout))}
  265                         Else If $D(^HS. FetchStatu s(tSequenc e,"Queue") ) {Do ..Se ndNotify(" WaitTimeou t",tAgKey, tToken)}
  266                }
  267                $$ $HSPerfEnd
  268                Qu it tSC
  269        Trap
  270                Se t $ZT="",t SC=$$$EnsS ystemError
  271                IF  $D(tSeque nce),$D(^H S.FetchSta tus(tSeque nce)) {
  272                         Set  $List(^HS. FetchStatu s(tSequenc e),5)=$ZU( 188)
  273                }
  274                Se t tMRN=""
  275                Fo r  {
  276                         Set  tMRN=$O(^H S.FetchSta tus(tSeque nce,"Pend" ,tMRN)) Qu it:tMRN=""
  277                         Do p Response.F acility.In sert($P(tM RN,"^"))
  278                         Do p Response.R equestStat us.Insert( tSC)
  279                }
  280       
  281                Go to Exit
  282        ]]>
  283       </Implemen tation>
  284      </Method>
  285     </Class>
  286    
  287    
  288     <Class 
  289      name="HS.L ocal.VA.HS .Access.CD A.HS.Gatew ay.Access. QueryProce ss"
  290     >
  291      <Descripti on>
  292       Custom que ry process  to fix do c filter ( fixed afte r 15.03)
  293      </Descript ion>
  294      <Super>
  295       HS.Gateway .Access.Qu eryProcess
  296      </Super>
  297      <TimeChang ed>
  298       65051,4186 8.901283
  299      </TimeChan ged>
  300      <TimeCreat ed>
  301       65015,3411 1.511102
  302      </TimeCrea ted>
  303     
  304      <Method 
  305       name="OnIn it"
  306      >
  307       <ReturnTyp e>
  308        %Status
  309       </ReturnTy pe>
  310       <Implement ation>
  311        <![CDATA[
  312                Se t %HSTrans former = # #class(HS. Local.VA.H S.Access.C DA.HS.Util .XSLTTrans former).%N ew()
  313                Qu it ##super ()
  314        ]]>
  315       </Implemen tation>
  316      </Method>
  317     
  318      <Method 
  319       name="OnRe quest"
  320      >
  321       <FormalSpe c>
  322        pRequest:H S.Message. SearchAndF etchReques t,*pRespon se:HS.Mess age.Search AndFetchRe sponse
  323       </FormalSp ec>
  324       <ReturnTyp e>
  325        %Status
  326       </ReturnTy pe>
  327       <Implement ation>
  328        <![CDATA[
  329                #d im tSC As  %Status
  330                Se t pRespons e=##class( HS.Message .SearchAnd FetchRespo nse).%New( )
  331                Se t tSC=$$$O K,$ZT="Tra p"
  332                Se t tAgKey=" "
  333                
  334                Do  {
  335                         If p Request.Fo rmat = "CU STOM" {
  336                                  Set tS C = ..Send RequestSyn c(pRequest .CustomOpe ration, pR equest, .p Response)
  337                                  Quit
  338                         }
  339                         #dim  tRequest  As HS.Mess age.Patien tSearchReq uest
  340                         //Co nstruct a  patient se arch reque st
  341                         Set  tRequest=# #Class(HS. Message.Pa tientSearc hRequest). %New()
  342                         Set  tResponse= ##Class(HS .Message.P atientSear chResponse ).%New()
  343                         IF p Request.MP IID'="" {
  344                                  Set tR equest.MPI ID=pReques t.MPIID
  345                         } El seIf (pReq uest.MRN'= "")&&(pReq uest.Assig ningAuthor ity'="") {
  346                                  Set tR equest.MRN =pRequest. MRN
  347                                  Set tR equest.Ass igningAuth ority=pReq uest.Assig ningAuthor ity
  348                         } El seIf (pReq uest.SSN'= "") {
  349                                  Set tR equest.SSN =pRequest. SSN
  350                         } El seIf (pReq uest.Analy ticsID'="" ) {
  351                                  Set tR equest.Ana lyticsID=p Request.An alyticsID
  352                         } El se {
  353                                  Set tS C = $$NotF oundErr()  Quit
  354                         }
  355                         //Fo r the sear ch request , if the i nfotype fi lter inclu des "PAT",  don't do  MPI filter ing,
  356                         //be cause by d efinition  any record  contains  PAT (and a lso there' s no InfoT ype index  for these)
  357                         Set  tGotPATFil t=0
  358                         For  tFiltNum=1 :1:pReques t.Filters. InfoTypes. Count() {
  359                                  IF pRe quest.Filt ers.InfoTy pes.GetAt( tFiltNum)= "PAT" {Set  tGotPATFi lt=1 Quit}
  360                         }
  361                         Set: 'tGotPATFi lt tReques t.InfoType s=pRequest .Filters.I nfoTypes
  362                         Set  tRequest.I gnoreSecon daryMPI=pR equest.Ign oreSeconda ryMPI
  363                         Set  tSC=##Clas s(HS.Types .RequestIn fo).CopyFr om(pReques t,.tReques t) Quit:$$ $ISERR(tSC )
  364                         //Pe rform the  search
  365                         Set  tSC=..Send RequestSyn c(..MPIOpe rations,tR equest,.tR esponse) Q uit:$$$ISE RR(tSC)
  366                         For  tI=tRespon se.Results .Count():- 1:1 {
  367                                  //remo ve any mat ches with  unconsente d demograp hics
  368                                  Do:tRe sponse.Res ults.GetAt (tI).MRN=" " tRespons e.Results. RemoveAt(t I)
  369                         }
  370                         If ' tResponse. Results.Co unt() {
  371                                  // No  matches .. .
  372                                  Set tS C = $$NotF oundErr()  Quit
  373                         }
  374       
  375                         // N ow, proces s the resu lts into a  batch fet ch request
  376                         #dim  tBatchReq uest As HS .Message.P atientBatc hQueryRequ estAsync
  377                         #dim  tBatchRes ponse As H S.Message. PatientBat chFetchRes ponseAsync
  378                         #dim  tIndex As  %Integer
  379                         Set  tBatchRequ est = ##cl ass(HS.Mes sage.Patie ntBatchQue ryRequestA sync).%New ()
  380                         Set  tBest=tRes ponse.MPII DList.GetA t(1)
  381                         Set  tSC=##Clas s(HS.Types .PatientIn fo).CopyFr om(tBest,. tBatchRequ est) Quit: $$$ISERR(t SC)
  382                         Set  tSC=##Clas s(HS.Types .RequestIn fo).CopyFr om(pReques t,.tBatchR equest) Qu it:$$$ISER R(tSC)
  383                         Set  tBatchRequ est.WaitPe riod=pRequ est.WaitPe riod
  384                         Set  tBatchRequ est.WaitTi meoutError =pRequest. WaitTimeou tError
  385                         Set  tSC=##clas s(HS.IHE.U til).Merge Additional Info(pRequ est,.tBatc hRequest)  Quit:$$$IS ERR(tSC)
  386                         Set  tBatchRequ est.Addres ses=tBest. Addresses, tBatchRequ est.Teleco ms=tBest.T elecoms,tB atchReques t.Identifi ers=tBest. Identifier s
  387                         //cu stom add b egin DEP 1 2/12/28
  388                         Set  tBatchRequ est.Extens ion=tBest. Extension
  389                         Set  tBatchRequ est.BirthP lace=tBest .BirthPlac e
  390                         //cu stom add e nd DEP 12/ 12/28
  391                         Try  {
  392                                  Set tS essionId=% session.Se ssionId
  393                         } Ca tch {
  394                                  Set tS essionId =  $JOB
  395                         }
  396                         Set  tBatchRequ est.Sessio nId = tSes sionId
  397                         Set  tBatchRequ est.Reques tId=tRespo nse.Reques tId
  398                         Set  tBatchRequ est.Aggreg ateOnly=1
  399       
  400                         #; C USTOM: sav e doc numb er for man ual filter ing later
  401                         If p Request.Fi lters'="",  pRequest. Filters.Do cumentNumb ers.Count( )>0 {
  402                                  Set tD ocNumber =  pRequest. Filters.Do cumentNumb ers.GetAt( 1)
  403                                  Do pRe quest.Filt ers.Docume ntNumbers. Clear()
  404                         }
  405                         
  406                         If p Request.Fi lters'="", pRequest.F ilters.Inf oTypes.Cou nt()||pReq uest.Filte rs.Dates.C ount()||pR equest.Fil ters.Visit Numbers.Co unt() {
  407                                  Set tU seFilters= 1
  408                         } El se {
  409                                  Set tU seFilters= 0
  410                         }
  411       
  412                         #; C USTOM: for  performan ce only is sue one fe tch if XDS  encounter /document  context
  413                         Set  xdsEncount er = pRequ est.Additi onalInfo.G etAt("xdsb Context:Vi sitNumber" )
  414                         Set  xdsMRN = p Request.Ad ditionalIn fo.GetAt(" xdsbContex t:MRN")
  415                         Set  xdsAA = pR equest.Add itionalInf o.GetAt("x dsbContext :Assigning Authority" )
  416                         Set  xdsFacilit y = pReque st.Additio nalInfo.Ge tAt("xdsbC ontext:Fac ility")
  417                         
  418                         For  tIndex = 1 :1:tRespon se.Results .Count() {
  419                                  #dim t Match As H S.Message. PatientSea rchMatch
  420                                  #dim t Fetch As H S.Message. PatientFet chRequestA sync
  421                                  Set tM atch = tRe sponse.Res ults.GetAt (tIndex)
  422                                  If ..E xcludeExte rnalFacili ties {
  423                                           Set tFac ility = tM atch.Facil ity 
  424                                           If ##cla ss(HS.Faci lity.Confi g).%Exists Id(tFacili ty) && (## class(HS.F acility.Co nfig).Exte rnalHIEGet Stored(tFa cility)) C ontinue
  425                                  }
  426                                  #; CUS TOM: only  issue one  fetch if X DS encount er/documen t context
  427                                  If xds Encounter] "" {
  428                                           Continue :xdsMRN'=t Match.MRN
  429                                           Continue :xdsAA'=tM atch.Assig ningAuthor ity
  430                                           Continue :xdsFacili ty'=tMatch .Facility
  431                                  }
  432                                  Set tF etch = ##c lass(HS.Me ssage.Pati entFetchRe questAsync ).%New()
  433                                  Set tS C=##Class( HS.Types.R equestInfo ).CopyFrom (pRequest, .tFetch) Q uit:$$$ISE RR(tSC)
  434                                  Set tS C=##class( HS.IHE.Uti l).MergeAd ditionalIn fo(tMatch, .tFetch) Q uit:$$$ISE RR(tSC)
  435                                  Set tF etch.MRN =  tMatch.MR N
  436                                  Set tF etch.MPIID  = tMatch. MPIID
  437                                  Set tF etch.Assig ningAuthor ity = tMat ch.Assigni ngAuthorit y
  438                                  Set tF etch.Facil ity = tMat ch.Facilit y
  439                                  Set tF etch.Gatew ay = tMatc h.Gateway
  440                                  Set tF etch.Conse nt = tMatc h.Consent
  441                                  Set tF etch.Filte rs = pRequ est.Filter s
  442                                  Set tF etch.UseFi lters=tUse Filters
  443                                  Set tF etch.Reque stId=tResp onse.Reque stId
  444                                  //copy  identifie rs
  445                                  For tI =1:1:tMatc h.Identifi ers.Count( ) Do tFetc h.Identifi ers.Insert (tMatch.Id entifiers. GetAt(tI))
  446                                  // Add  this
  447                                  Do tBa tchRequest .Requests. Insert(tFe tch)
  448                         }
  449                         //Pe rform the  fetches
  450                         Set  tSC = ..Se ndRequestS ync(..EPRT arget,tBat chRequest, .tBatchRes ponse) Qui t:$$$ISERR (tSC)
  451                         Set  tGotOK=0
  452                         //Di d we get b ack any OK  responses ?  Registr ySDAQuery  doesn't co unt.
  453                         For  tI=1:1:tBa tchRespons e.RequestS tatus.Coun t() {
  454                                  IF $$$ ISOK(tBatc hResponse. RequestSta tus.GetAt( tI)) && (t BatchRespo nse.Facili ty.GetAt(t I)'="Regis try") {Set  tGotOK=1  Quit}
  455                         }
  456                         // S etup AgKey  so APIs c an setup p urge no ma tter what  data comes  back.  Ma ke sure th ere is act ually a Se quence def ined
  457                         Set: (tBatchRes ponse.Sequ ence'="")  tAgKey="T" _tBatchRes ponse.Sequ ence
  458                         IF ' tGotOK {Se t tSC = $$ $HSError($ $$HSErrNoS uccessfulR equests,tB atchRespon se.Request Status.Cou nt()) Quit }
  459                         
  460                         $$$H STRACE("Ba ck from EP R","reques t,response ",tBatchRe quest,tBat chResponse )
  461                         
  462                         Set  tAllowInco mpleteResu lt = $Case (pRequest. AllowIncom pleteResul t,"":..All owIncomple teResult," allow":1," disallow": 0)
  463                         Set  tOneErrore d = 0
  464                         For  tI=1:1:tBa tchRespons e.RequestS tatus.Coun t() {
  465                                  Set tS C2=tBatchR esponse.Re questStatu s.GetAt(tI )
  466                                  If $$$ ISERR(tSC2 ) Set:'tAl lowIncompl eteResult  tSC = tSC2  Set:tAllo wIncomplet eResult tO neErrored  = 1 Quit
  467                         }
  468                         Quit :$$$ISERR( tSC)
  469       
  470                         #dim  tSDAStrea m As %Glob alCharacte rStream
  471       
  472                         // N ext, grab  the XML
  473                         Set  tSC=##Clas s(HS.SDA3. Container) .MakeSDASt ream(tAgKe y,.tSDAStr eam,,,pReq uest.Trans lationProf ile,tOneEr rored)
  474                         Quit :$$$ISERR( tSC)
  475                         
  476                         If t OneErrored  Set pResp onse.Incom pleteResul t = 1
  477       
  478                         do t SDAStream. Rewind()
  479                         $$$H STRACE("be fore","bef ore",tSDAS tream)
  480                         do t SDAStream. Rewind()
  481                         
  482                         #; C USTOM: fix , manually  apply doc  filter
  483                         #; n ot using c ached XSLT Transforme r or file  since styl esheet is  so small a nd this is  just a wo rkaround
  484                         If $ G(tDocNumb er) '= ""  {
  485                                  Try {
  486                                           Set tPar ams("docum entNumber" ) = "'"_tD ocNumber_" '"
  487                                           Set tXSL T = %HSTra nsformer
  488                                           #; ##cla ss(HS.Util .XSLTTrans former).%N ew()
  489                                           $$$Throw OnError(tX SLT.Transf orm(tSDASt ream,"xdat a://"_..%C lassName(1 )_":DocFil terFix",.t Fixed,.tPa rams))
  490                                           do tFixe d.Rewind()
  491                                           $$$HSTRA CE("after" ,"after",t Fixed)
  492                                           do tFixe d.Rewind()
  493                                           Set tSDA Stream = t Fixed
  494                                           Kill tPa rams
  495                                  }
  496                                  Catch  ex {
  497                                           Set tSC  = ex.AsSta tus()
  498                                           Quit
  499                                  }
  500                         }
  501                         Set  tQuickStre am=##Class (HS.SDA3.Q uickStream ).%New()
  502                         Set  tSC=tQuick Stream.Cop yFrom(tSDA Stream) Qu it:$$$ISER R(tSC)
  503                         IF ( pRequest.F ormat="HTM L")||(pReq uest.Forma t="PDF") {
  504                                  Set tF ormat=pReq uest.Forma t,tId=pReq uest.Repor tCode,tTyp e="Report"
  505                         } El se {
  506                                  Set tI d=pRequest .Format,tF ormat=tId, tType="XML "
  507                         }
  508                         
  509                         If p Request.Ad ditionalIn fo.GetAt(" DocumentUn iqueId")'= "" Set tPa rams("docu mentUnique Id")="'"_p Request.Ad ditionalIn fo.GetAt(" DocumentUn iqueId")_" '"
  510                         
  511                         $$$H STRACESTAR TCALL
  512                         Set  tSC=##Clas s(HS.Repor ts.Patient .ReportRun ).Push(tQu ickStream. %Id(),tTyp e,tId,"",t Format,.pR esponse,.t Params)
  513                         $$$H STRACEENDC ALL
  514                         
  515                         Quit :$$$ISERR( tSC)
  516                         Do # #Class(HS. Reports.Pa tient.Repo rtRun).Pur geRun(%HSR eportRun)
  517                         Quit
  518                         
  519                }  While (0)
  520        Exit
  521                //  Queue up  a purge, i f we have  aggregated  anything
  522                Se t:tAgKey'= "" ^HS.Vie wer.AGPurg eQ("S","AP I",tAgKey, $H)=""
  523                Se t pRespons e.tStatus= tSC Quit $ $$OK  //un til Ensemb le fix, we  have to p ass status  in OK mes sage
  524        Trap
  525                Se t $ZT="",t SC=$$$EnsS ystemError
  526                Go to Exit
  527                
  528        NotFoundEr r()
  529                If  pRequest. MPIID'=""  {
  530                         Quit  $$$HSErro r($$$HSErr MPINotFoun d,pRequest .MPIID)
  531                }  ElseIf (pR equest.MRN '="")&&(pR equest.Ass igningAuth ority'="")  {
  532                         Quit  $$$HSErro r($$$HSErr MRNNotFoun d,pRequest .MRN_"-"_p Request.As signingAut hority)
  533                }  ElseIf pRe quest.SSN' ="" {
  534                         Quit  $$$HSErro r($$$HSErr SSNNotFoun d,pRequest .SSN)
  535                }  Else {
  536                         Quit  $$$HSErro r($$$HSErr InvalidReq uest)
  537                }
  538        ]]>
  539       </Implemen tation>
  540      </Method>
  541     
  542      <XData 
  543       name="DocF ilterFix"
  544      >
  545       <Descripti on>
  546        CUSTOM: Re moves all  documents  except for  the given  document
  547       </Descript ion>
  548       <Data>
  549        <![CDATA[
  550        <?xml vers ion="1.0"? >
  551        <xsl:style sheet vers ion="1.0"  xmlns:xsl= "http://ww w.w3.org/1 999/XSL/Tr ansform">
  552                <x sl:param n ame="docum entNumber" />
  553                <x sl:templat e match="n ode()|@*">
  554                         <xsl :copy>
  555                                  <xsl:a pply-templ ates selec t="node()| @*"/>
  556                         </xs l:copy>
  557                </ xsl:templa te>
  558                <x sl:templat e match="D ocument[no t(Document Number = $ documentNu mber)]"/>
  559        </xsl:styl esheet>
  560        ]]>
  561       </Data>
  562      </XData>
  563     
  564      <Storage 
  565       name="Defa ult"
  566      >
  567       <Type>
  568        %Library.C acheStorag e
  569       </Type>
  570      </Storage>
  571     </Class>
  572    
  573    
  574     <Class 
  575      name="HS.L ocal.VA.HS .Access.CD A.HS.IHE.X DSb.OnDema nd.Process "
  576     >
  577      <Descripti on>
  578       Custom pro cess to sp ecify filt ers
  579      </Descript ion>
  580      <Super>
  581       HS.IHE.XDS b.OnDemand .Process
  582      </Super>
  583      <TimeChang ed>
  584       65015,3419 6.067273
  585      </TimeChan ged>
  586      <TimeCreat ed>
  587       65015,3419 6.067273
  588      </TimeCrea ted>
  589     
  590      <Method 
  591       name="Gene rate"
  592      >
  593       <Descripti on>
  594        Override:  support do cument con text
  595       </Descript ion>
  596       <FormalSpe c>
  597        pRequest:H S.Message. XMLMessage ,pDocument :HS.IHE.XD Sb.Types.D ocument,*p Attach:HS. IHE.Common .Messages. MIMEAttach ment
  598       </FormalSp ec>
  599       <ReturnTyp e>
  600        %Status
  601       </ReturnTy pe>
  602       <Implement ation>
  603        <![CDATA[
  604                Se t tSC = $$ $OK
  605                Tr y {
  606                         #; C reate the  search and  fetch req uest
  607                         #dim  tGenerate Request As  HS.Messag e.SearchAn dFetchRequ est
  608                         #dim  tGenerate Response A s HS.Messa ge.SearchA ndFetchRes ponse
  609                         Set  tGenerateR equest = # #class(HS. Message.Se archAndFet chRequest) .%New()
  610                         Set  tGenerateR equest.Wai tPeriod =  ..WaitPeri od
  611                         Set  tGenerateR equest.Wai tTimeoutEr ror = ..Wa itTimeoutE rror
  612                         Set  tSC = ##cl ass(HS.Typ es.Request Info).XMLM essageToRe questInfo( pRequest,. tGenerateR equest) $$ $ThrowOnEr ror(tSC)
  613                         Set  tGenerateR equest.MPI ID = pDocu ment.Conte xt.MPIID
  614                         Set  tGenerateR equest.MRN  = pDocume nt.Context .MRN
  615                         Set  tGenerateR equest.Ass igningAuth ority = pD ocument.Co ntext.Assi gningAutho rity
  616                         // h ardcode th e name of  the Transl ation Prof ile to use  until we  get a patc h that pro vides
  617                         // t he name in  pDocument .Context.T ransProfil e.
  618                         Set  tGenerateR equest.Tra nslationPr ofile="VA- VHIE" //pD ocument.Co ntext.Tran sProfile
  619                
  620                         #; S et the out put format  based on  document c ontext
  621                         If p Document.C ontext.Tra nsformType  = "XSLT"  {
  622                                  Set tG enerateReq uest.Forma t = pDocum ent.Contex t.Transfor mOption
  623                         } El se {
  624                                  Set tG enerateReq uest.Forma t = pDocum ent.Contex t.Transfor mType
  625                                  If pDo cument.Con text.Trans formType =  "CUSTOM"  {
  626                                           Set tGen erateReque st.CustomO peration =  pDocument .Context.T ransformOp tion
  627                                  } Else  {
  628                                           Set tGen erateReque st.ReportC ode = pDoc ument.Cont ext.Transf ormOption
  629                                  }
  630                         }
  631       
  632                         #; F ilters
  633                         If p Document.C ontext.Vis itNumber ' = "" {
  634                                  Set en cNo = $P(p Document.C ontext.Vis itNumber," |",1)
  635                                  Set do cNo = $P(p Document.C ontext.Vis itNumber," |",2)
  636                                  Set tG enerateReq uest.Filte rs = ##cla ss(HS.Type s.Filters) .%New()
  637                                  If enc No '= "" D o tGenerat eRequest.F ilters.Vis itNumbers. Insert(enc No)
  638                                  If doc No'="" {   // only fe tch encoun ter and do cument for  C62
  639                                           Do tGene rateReques t.Filters. InfoTypes. Insert("PA T")
  640                                           Do tGene rateReques t.Filters. InfoTypes. Insert("EN C")
  641                                           Do tGene rateReques t.Filters. InfoTypes. Insert("DO C")
  642                                           Do tGene rateReques t.Filters. DocumentNu mbers.Inse rt(docNo)
  643                                  }
  644                         }
  645                         
  646                         #; A dditional  filters -  used by co nsumer pro cess to en sure a dyn amic docum ent doesn' t try to c onsume its elf
  647                         If ' ..IgnoreSe condaryMPI  {
  648                                  Do tGe nerateRequ est.Additi onalInfo.S etAt(pRequ est.Name," xdsbReques tName")
  649                                  Do tGe nerateRequ est.Additi onalInfo.S etAt(1,"xd sbConsumeO nly")
  650                                  
  651                                  #; Whe n generati ng an on-d emand docu ment, do n ot consume  any other  dynamic d ocument fr om this re pository
  652                                  Set tT hisReposit oryOID = # #class(HS. Data.OIDMa p).OIDForT ype($names pace,"Repo sitory")
  653                                  Do tGe nerateRequ est.Additi onalInfo.S etAt(tThis Repository OID,"xdsbE xcludeRepo sitory:1")
  654                         }
  655                         
  656                         #; A lways set  the xdsbCo ntext:* ke ys for the  consumer  process
  657                         #; F or other ( stable and  foreign o n-demand)  documents,  check aga inst the s cope of th is on-dema nd documen t
  658                         Do t GenerateRe quest.Addi tionalInfo .SetAt(pDo cument.Con text.Assig ningAuthor ity,"xdsbC ontext:Ass igningAuth ority")
  659                         Do t GenerateRe quest.Addi tionalInfo .SetAt(pDo cument.Con text.Facil ity,"xdsbC ontext:Fac ility")
  660                         Do t GenerateRe quest.Addi tionalInfo .SetAt(pDo cument.Con text.MPIID ,"xdsbCont ext:MPIID" )
  661                         Do t GenerateRe quest.Addi tionalInfo .SetAt(pDo cument.Con text.MRN," xdsbContex t:MRN")
  662                         Do t GenerateRe quest.Addi tionalInfo .SetAt($G( encNo),"xd sbContext: VisitNumbe r")
  663                         Do t GenerateRe quest.Addi tionalInfo .SetAt($G( docNo),"xd sbContext: DocumentNu mber")
  664                         Do t GenerateRe quest.Addi tionalInfo .SetAt(pDo cument.Uni queId,"Doc umentUniqu eId")
  665                         
  666                         #; F orward hos t settings
  667                         Set  tGenerateR equest.Sea rchMode =  ..SearchMo de
  668                         Set  tGenerateR equest.Ign oreSeconda ryMPI = .. IgnoreSeco ndaryMPI           
  669                         
  670                         #; S end search  and fetch
  671                         Set  tSC = ..Se ndRequestS ync(..Quer yProcess,  tGenerateR equest, .t GenerateRe sponse) 
  672                         If $ IsObject(t GenerateRe sponse) {
  673                                  #; not hing in th e response
  674                                  If tGe nerateResp onse.XMLDa ta.Size=0, tGenerateR esponse.HT MLData.Siz e=0,tGener ateRespons e.BinaryDa ta.Size=0  {
  675                                           #; if th e response  status is  that the  MPI is not  found, it  was filte red by con sent, atta ch an empt y document
  676                                           If $$$IS ERR(tGener ateRespons e.tStatus)  && ($syst em.Status. GetErrorCo des(tGener ateRespons e.tStatus) ["MPINotFo und") {
  677                                                            Se t tGenerat eResponse. tStatus=$$ $OK
  678                                                            Se t tSC = ## class(Ens. Util.URLSt ream).GetU RLStream(" xdata://"_ ..%ClassNa me(1)_":Em ptyRespons e", .tResp onseDocume nt)
  679                                                            Do :$$$ISOK(t SC) tGener ateRespons e.XMLData. CopyFrom(t ResponseDo cument)
  680                                           } Else {
  681                                                    Set tSC =  $$$ERROR($ $$GeneralE rror,"No p atient dat a found fo r On Deman d document ")
  682                                           }
  683                                  }
  684                         }
  685                         $$$T hrowOnErro r(tSC)
  686                         $$$T hrowOnErro r(tGenerat eResponse. tStatus)
  687       
  688                         #; C reate the  attachemen t
  689                         Set  pAttach =  ##class(HS .IHE.Commo n.Messages .MIMEAttac hment).%Ne w()
  690                         Set  pAttach.Co ntentTrans ferEncodin g = "binar y"
  691                         If t GenerateRe quest.Form at="PDF" {
  692                                  Set pA ttach.Cont entType =  "applicati on/pdf"
  693                                  Set tS C = pAttac h.Body.Cop yFrom(tGen erateRespo nse.Binary Data)
  694                         } 
  695                         If t GenerateRe quest.Form at="CUSTOM " {
  696                                  Set pA ttach.Cont entType =  "applicati on/octet-s tream"
  697                                  Set tS C = pAttac h.Body.Cop yFrom(tGen erateRespo nse.Binary Data)
  698                         } 
  699                         Else If tGenera teRequest. Format="HT ML" {
  700                                  Set pA ttach.Cont entType =  "text/html "
  701                                  Set tS C = pAttac h.Body.Cop yFrom(tGen erateRespo nse.HTMLDa ta)
  702                         } 
  703                         Else  {
  704                                  Set pA ttach.Cont entType =  "text/xml"
  705                                  Set tS C = pAttac h.Body.Cop yFrom(tGen erateRespo nse.XMLDat a)
  706                         }
  707                         $$$T hrowOnErro r(tSC)
  708       
  709                }  Catch ex {  Set tSC =  ex.AsStat us() }
  710                Qu it tSC
  711        ]]>
  712       </Implemen tation>
  713      </Method>
  714     
  715      <Storage 
  716       name="Defa ult"
  717      >
  718       <Type>
  719        %Library.C acheStorag e
  720       </Type>
  721      </Storage>
  722     </Class>
  723    
  724    
  725     <Class 
  726      name="HS.L ocal.VA.HS .Access.CD A.HS.Util. XSLTHelper "
  727     >
  728      <Super>
  729       HS.Util.XS LTHelper
  730      </Super>
  731      <TimeChang ed>
  732       65015,3427 0.068546
  733      </TimeChan ged>
  734      <TimeCreat ed>
  735       65015,3427 0.068546
  736      </TimeCrea ted>
  737     
  738      <Method 
  739       name="eval uate"
  740      >
  741       <FormalSpe c>
  742        Args...
  743       </FormalSp ec>
  744       <ReturnTyp e>
  745        %String
  746       </ReturnTy pe>
  747       <Implement ation>
  748        <![CDATA[
  749                If  Args(1)=" dateAdd" {
  750                         Quit  ..dateAdd (Args(2),  $NUMBER(Ar gs(3),"I") , $Get(Arg s(4), $ZDa teTime($Ho rolog, 3)) )
  751                }  ElseIf Arg s(1)="stsT ranslate"  {
  752                         Quit  ..stsTran slate(Args (2), Args( 3), Args(4 ), Args(5) )
  753                }
  754                Se t tSc = ## super(Args ...)
  755                Qu it tSc
  756                ZT RAP "BAD:" _$g(Args(1 ))
  757        ]]>
  758       </Implemen tation>
  759      </Method>
  760     
  761      <Method 
  762       name="date Add"
  763      >
  764       <ClassMeth od>
  765        1
  766       </ClassMet hod>
  767       <FormalSpe c>
  768        pDatePart: %String="" ,pIntExp:% Integer="" ,pStartDat eODBCForma t:%String= {$ZDateTim e($Horolog , 3)}
  769       </FormalSp ec>
  770       <ReturnTyp e>
  771        %Integer
  772       </ReturnTy pe>
  773       <Implement ation>
  774        <![CDATA[
  775                #d im eExcept ion As %Ex ception.Ab stractExce ption
  776                
  777                Tr y {
  778                         Set  tDateAdd =  $System.S QL.DATEADD (pDatePart , pIntExp,  pStartDat eODBCForma t)
  779                }
  780                Ca tch eExcep tion {
  781                         Set  tDateAdd =  ""
  782                }
  783                
  784                Qu it tDateAd d
  785        ]]>
  786       </Implemen tation>
  787      </Method>
  788     
  789      <Method 
  790       name="stsT ranslate"
  791      >
  792       <ClassMeth od>
  793        1
  794       </ClassMet hod>
  795       <FormalSpe c>
  796        pFromCS:%S tring="",p FromCode:% String="", pToCS:%Str ing="",pTy pe:%String =""
  797       </FormalSp ec>
  798       <ReturnTyp e>
  799        %String
  800       </ReturnTy pe>
  801       <Implement ation>
  802        <![CDATA[
  803                #d im eExcept ion As %Ex ception.Ab stractExce ption
  804                Se t tCode =  ""
  805                Tr y {
  806                         If p Type = "de sc" {
  807                                  Set tS c = ##clas s(HS.Local .VA.Termin ology.Cust omTranslat ionProfile ).Map("",  pFromCS, " ", pFromCo de, .pToCS , .tCode,  .tCode)
  808                         } El se {
  809                                  Set tS c = ##clas s(HS.Local .VA.Termin ology.Cust omTranslat ionProfile ).Map("",  pFromCS, p FromCode,  "", .pToCS , .tCode,  .tCode)
  810                         }
  811                }
  812                Ca tch eExcep tion {
  813                }
  814                Qu it tCode
  815        ]]>
  816       </Implemen tation>
  817      </Method>
  818     </Class>
  819    
  820    
  821     <Class 
  822      name="HS.L ocal.VA.HS .Access.CD A.HS.Util. XSLTTransf ormer"
  823     >
  824      <Super>
  825       HS.Util.XS LTTransfor mer
  826      </Super>
  827      <TimeChang ed>
  828       65015,3398 1.465596
  829      </TimeChan ged>
  830      <TimeCreat ed>
  831       65015,3398 1.465596
  832      </TimeCrea ted>
  833     
  834      <Method 
  835       name="Init ialize"
  836      >
  837       <ReturnTyp e>
  838        %Status
  839       </ReturnTy pe>
  840       <Implement ation>
  841        <![CDATA[
  842                Se t ..XSLTCa llbackHand lerClass=" HS.Local.V A.HS.Acces s.CDA.HS.U til.XSLTHe lper"
  843                Qu it ##super ()
  844        ]]>
  845       </Implemen tation>
  846      </Method>
  847     </Class>
  848    
  849    
  850     <Class 
  851      name="HS.L ocal.VA.HS .Access.CD A.Producti on"
  852     >
  853      <Descripti on>
  854       An example  productio n showing  a HealthSh are Viewer  configura tion
  855      </Descript ion>
  856      <IncludeCo de>
  857       HS.Common
  858      </IncludeC ode>
  859      <Procedure Block>
  860       1
  861      </Procedur eBlock>
  862      <Super>
  863       HS.Util.Ab stractProd uction
  864      </Super>
  865      <TimeChang ed>
  866       65026,4738 5.700344
  867      </TimeChan ged>
  868      <TimeCreat ed>
  869       65015,3393 7.108836
  870      </TimeCrea ted>
  871     
  872      <Property 
  873       name="Imag eViewerInt egration"
  874      >
  875       <Descripti on>
  876        The extern al image v iewing ser vice that  HealthShar e is integ rated with . This is  optional.  The effect s of
  877        this setti ng may dep end on its  value. Se e the docu mentation  for more i nformation .
  878       </Descript ion>
  879       <Type>
  880        %String
  881       </Type>
  882       <Parameter  
  883        name="DISP LAYLIST" 
  884        value=",,e Health Glo bal enable d"
  885       />
  886       <Parameter  
  887        name="VALU ELIST" 
  888        value=",,e HGT"
  889       />
  890      </Property >
  891     
  892      <Property 
  893       name="UseU MLSForDocu mentNaviga tion"
  894      >
  895       <Descripti on>
  896        Whether to  match con cepts foun d in docue mts to hig h-level co ncepts in  the UMLS m etathesaur us, 
  897        which allo ws filteri ng and dis play based  on specif ic medical  terms and  high-leve l concepts .
  898       </Descript ion>
  899       <Type>
  900        %Boolean
  901       </Type>
  902       <InitialEx pression>
  903        0
  904       </InitialE xpression>
  905      </Property >
  906     
  907      <Parameter  
  908       name="SETT INGS"
  909      >
  910       <Default>
  911        ImageViewe rIntegrati on,UseUMLS ForDocumen tNavigatio n
  912       </Default>
  913      </Paramete r>
  914     
  915      <Method 
  916       name="OnSt art"
  917      >
  918       <Descripti on>
  919         Called wh en the Pro duction st arts
  920       </Descript ion>
  921       <ClassMeth od>
  922        1
  923       </ClassMet hod>
  924       <FormalSpe c>
  925        pTimeStart ed:%String
  926       </FormalSp ec>
  927       <ReturnTyp e>
  928        %Status
  929       </ReturnTy pe>
  930       <Implement ation>
  931        <![CDATA[
  932         set sc=## super(pTim eStarted)  if 'sc qui t sc
  933         set:$$$Ch eckCompone ntStatus(" VIEWER") s c=##class( HS.SDA3.Co ntainer).P urgeAllDat a()
  934         quit sc
  935        ]]>
  936       </Implemen tation>
  937      </Method>
  938     
  939      <XData 
  940       name="Prod uctionDefi nition"
  941      >
  942       <Data>
  943        <![CDATA[
  944        <Productio n Name="HS .Local.VA. HS.Access. CDA.Produc tion" Test ingEnabled ="true" Lo gGeneralTr aceEvents= "false">
  945          <Descrip tion>Acces s gateway  production  specifica lly for VD IF XDS.b Q D/RD</Desc ription>
  946          <ActorPo olSize>3</ ActorPoolS ize>
  947          <Setting  Target="P roduction"  Name="Shu tdownTimeo ut">10</Se tting>
  948          <Item Na me="HS.Gat eway.Acces s.Manager"  Category= "" ClassNa me="HS.Gat eway.Acces s.Manager"  PoolSize= "0" Enable d="true" F oreground= "false" Di sableError Traps="fal se" Commen t="" LogTr aceEvents= "false" Sc hedule="">
  949            <Setti ng Target= "Host" Nam e="Inactiv ityTimeout ">0</Setti ng>
  950            <Setti ng Target= "Host" Nam e="FetchRe gistryData ">1</Setti ng>
  951            <Setti ng Target= "Host" Nam e="TraceOp erations"> </Setting>
  952          </Item>
  953          <Item Na me="HUB" C ategory=""  ClassName ="HS.Hub.H SWS.Remote Operations " PoolSize ="0" Enabl ed="true"  Foreground ="false" D isableErro rTraps="fa lse" Comme nt="" LogT raceEvents ="false" S chedule="" >
  954            <Setti ng Target= "Host" Nam e="Inactiv ityTimeout ">0</Setti ng>
  955            <Setti ng Target= "Host" Nam e="Service Name">HSRE GISTRY</Se tting>
  956          </Item>
  957          <Item Na me="GATEWA Y" Categor y="" Class Name="HS.G ateway.HSW S.RemoteOp erations"  PoolSize=" 2" Enabled ="true" Fo reground=" false" Dis ableErrorT raps="fals e" Comment ="" LogTra ceEvents=" false" Sch edule="">
  958            <Setti ng Target= "Host" Nam e="Inactiv ityTimeout ">0</Setti ng>
  959          </Item>
  960          <Item Na me="HS.Vie wer.Servic es" Catego ry="" Clas sName="HS. Viewer.Ser vices" Poo lSize="0"  Enabled="t rue" Foreg round="fal se" Disabl eErrorTrap s="false"  Comment=""  LogTraceE vents="fal se" Schedu le="">
  961            <Setti ng Target= "Host" Nam e="Inactiv ityTimeout ">0</Setti ng>
  962          </Item>
  963          <Item Na me="HS.Uti l.Maintena nceService " Category ="" ClassN ame="HS.Ut il.Mainten anceServic e" PoolSiz e="1" Enab led="true"  Foregroun d="false"  Comment=""  LogTraceE vents="fal se" Schedu le="">
  964            <Setti ng Target= "Host" Nam e="Inactiv ityTimeout ">0</Setti ng>
  965            <Setti ng Target= "Adapter"  Name="Call Interval"> 60</Settin g>
  966          </Item>
  967          <Item Na me="HS.Gat eway.Acces s.QueryPro cess" Cate gory="" Cl assName="H S.Gateway. Access.Que ryProcess"  PoolSize= "0" Enable d="true" F oreground= "false" Co mment="" L ogTraceEve nts="false " Schedule ="">
  968            <Setti ng Target= "Host" Nam e="Inactiv ityTimeout ">0</Setti ng>
  969          </Item>
  970          <Item Na me="HS.Gat eway.Acces s.WebServi ces" Categ ory="" Cla ssName="HS .Gateway.A ccess.WebS ervices" P oolSize="0 " Enabled= "true" For eground="f alse" Comm ent="" Log TraceEvent s="false"  Schedule=" ">
  971            <Setti ng Target= "Host" Nam e="Inactiv ityTimeout ">0</Setti ng>
  972            <Setti ng Target= "Host" Nam e="Registe rGatewayOn Startup">1 </Setting>
  973            <Setti ng Target= "Host" Nam e="Resourc eRequired" >%HS_WebSe rvices</Se tting>
  974            <Setti ng Target= "Host" Nam e="QueryPr ocess">VA. HS.Gateway .Access.Qu eryProcess </Setting>
  975            <Setti ng Target= "Host" Nam e="TraceOp erations"> </Setting>
  976          </Item>
  977          <Item Na me="HS.Gat eway.Acces s.Push.Del iveryManag er" Catego ry="" Clas sName="HS. Gateway.Ac cess.Push. DeliveryMa nager" Poo lSize="1"  Enabled="t rue" Foreg round="fal se" Commen t="" LogTr aceEvents= "false" Sc hedule="">
  978            <Setti ng Target= "Host" Nam e="Inactiv ityTimeout ">0</Setti ng>
  979          </Item>
  980          <Item Na me="HS.Uti l.Trace.Op erations"  Category=" " ClassNam e="HS.Util .Trace.Ope rations" P oolSize="1 " Enabled= "true" For eground="f alse" Comm ent="" Log TraceEvent s="false"  Schedule=" ">
  981          </Item>
  982          <Item Na me="HS.Gat eway.Acces s.Push.Fil eSampleOpe ration" Ca tegory=""  ClassName= "HS.Gatewa y.Access.P ush.FileSa mpleOperat ion" PoolS ize="1" En abled="tru e" Foregro und="false " DisableE rrorTraps= "false" Co mment="" L ogTraceEve nts="false " Schedule ="">
  983            <Setti ng Target= "Host" Nam e="Inactiv ityTimeout ">0</Setti ng>
  984            <Setti ng Target= "Adapter"  Name="File Path">../. ./Data/HSA CCCDA/Out< /Setting>
  985          </Item>
  986          <Item Na me="HS.Gat eway.Acces s.Push.Fax SampleOper ation" Cat egory="" C lassName=" HS.Gateway .Access.Pu sh.FaxSamp leOperatio n" PoolSiz e="1" Enab led="true"  Foregroun d="false"  DisableErr orTraps="f alse" Comm ent="" Log TraceEvent s="false"  Schedule=" ">
  987            <Setti ng Target= "Host" Nam e="Inactiv ityTimeout ">0</Setti ng>
  988            <Setti ng Target= "Adapter"  Name="Cred entials">S ENDER</Set ting>
  989            <Setti ng Target= "Adapter"  Name="SMTP Server">ma il.iscinte rnal.com</ Setting>
  990          </Item>
  991          <Item Na me="HS.Gat eway.Acces s.Push.Dir ectEmailSa mpleOperat ion" Categ ory="" Cla ssName="HS .Gateway.A ccess.Push .DirectEma ilSampleOp eration" P oolSize="1 " Enabled= "true" For eground="f alse" Disa bleErrorTr aps="false " Comment= "" LogTrac eEvents="f alse" Sche dule="">
  992            <Setti ng Target= "Host" Nam e="Inactiv ityTimeout ">0</Setti ng>
  993            <Setti ng Target= "Adapter"  Name="Cred entials">S ENDER</Set ting>
  994            <Setti ng Target= "Adapter"  Name="SMTP Server">ma il.iscinte rnal.com</ Setting>
  995          </Item>
  996          <Item Na me="XDSb R egistry" C ategory=""  ClassName ="HS.Util. SOAPClient .Operation s" PoolSiz e="1" Enab led="true"  Foregroun d="false"  Comment=""  LogTraceE vents="fal se" Schedu le="">
  997            <Setti ng Target= "Host" Nam e="Inactiv ityTimeout ">0</Setti ng>
  998            <Setti ng Target= "Host" Nam e="Service Name">XDSb .Registry< /Setting>
  999          </Item>
  1000          <Item Na me="XDSb R epository"  Category= "" ClassNa me="HS.Uti l.SOAPClie nt.Operati ons" PoolS ize="1" En abled="tru e" Foregro und="false " Comment= "" LogTrac eEvents="f alse" Sche dule="">
  1001            <Setti ng Target= "Host" Nam e="Inactiv ityTimeout ">0</Setti ng>
  1002            <Setti ng Target= "Host" Nam e="Service Name">XDSb .Repositor y</Setting >
  1003          </Item>
  1004          <Item Na me="HS.IHE .XDSb.Push .Operation s" Categor y="" Class Name="HS.I HE.XDSb.Pu sh.Operati ons" PoolS ize="1" En abled="tru e" Foregro und="false " Comment= "" LogTrac eEvents="f alse" Sche dule="">
  1005            <Setti ng Target= "Host" Nam e="Inactiv ityTimeout ">0</Setti ng>
  1006            <Setti ng Target= "Host" Nam e="Reposit oryTarget" >XDSb Repo sitory</Se tting>
  1007          </Item>
  1008          <Item Na me="HS.IHE .XDSb.Repo sitory.Ser vices" Cat egory="" C lassName=" HS.IHE.XDS b.Reposito ry.Service s" PoolSiz e="0" Enab led="true"  Foregroun d="false"  Comment=""  LogTraceE vents="fal se" Schedu le="">
  1009            <Setti ng Target= "Host" Nam e="Inactiv ityTimeout ">0</Setti ng>
  1010            <Setti ng Target= "Host" Nam e="XDSbRet rieveTarge t">VA.HS.I HE.XDSb.On Demand.Pro cess</Sett ing>
  1011          </Item>
  1012          <Item Na me="HS.IHE .XDSb.OnDe mand.Proce ss" Catego ry="" Clas sName="HS. IHE.XDSb.O nDemand.Pr ocess" Poo lSize="0"  Enabled="t rue" Foreg round="fal se" Commen t="" LogTr aceEvents= "false" Sc hedule="">
  1013            <Setti ng Target= "Host" Nam e="WaitPer iod">30000 0</Setting >
  1014          </Item>
  1015          <Item Na me="HS.IHE .XDSb.Cons umer.Viewe rFetchProc ess" Categ ory="" Cla ssName="HS .IHE.XDSb. Consumer.V iewerFetch Process" P oolSize="0 " Enabled= "true" For eground="f alse" Comm ent="" Log TraceEvent s="false"  Schedule=" ">
  1016          </Item>
  1017          <Item Na me="HS.IHE .XDSb.Cons umer.Opera tions" Cat egory="" C lassName=" HS.IHE.XDS b.Consumer .Operation s" PoolSiz e="1" Enab led="true"  Foregroun d="false"  Comment=""  LogTraceE vents="fal se" Schedu le="">
  1018            <Setti ng Target= "Host" Nam e="XDSbReg istryServi ceName">XD Sb.Query</ Setting>
  1019          </Item>
  1020          <Item Na me="VA.HS. Gateway.Ac cess.Query Process" C ategory=""  ClassName ="HS.Local .VA.HS.Acc ess.CDA.HS .Gateway.A ccess.Quer yProcess"  PoolSize=" 0" Enabled ="true" Fo reground=" false" Com ment="" Lo gTraceEven ts="false"  Schedule= "">
  1021            <Setti ng Target= "Host" Nam e="Inactiv ityTimeout ">0</Setti ng>
  1022            <Setti ng Target= "Host" Nam e="EPRTarg et">VA.HS. Gateway.Ac cess.Manag er</Settin g>
  1023            <Setti ng Target= "Host" Nam e="TraceOp erations"> *FULL*</Se tting>
  1024          </Item>
  1025          <Item Na me="VA.HS. IHE.XDSb.O nDemand.Pr ocess" Cat egory="" C lassName=" HS.Local.V A.HS.Acces s.CDA.HS.I HE.XDSb.On Demand.Pro cess" Pool Size="0" E nabled="tr ue" Foregr ound="fals e" Comment ="" LogTra ceEvents=" false" Sch edule="">
  1026            <Setti ng Target= "Host" Nam e="Inactiv ityTimeout ">0</Setti ng>
  1027            <Setti ng Target= "Host" Nam e="QueryPr ocess">VA. HS.Gateway .Access.Qu eryProcess </Setting>
  1028            <Setti ng Target= "Host" Nam e="WaitPer iod">30000 0</Setting >
  1029          </Item>
  1030          <Item Na me="VA.HS. Gateway.Ac cess.Manag er" Catego ry="" Clas sName="HS. Local.VA.H S.Access.C DA.HS.Gate way.Access .Manager"  PoolSize=" 0" Enabled ="true" Fo reground=" false" Dis ableErrorT raps="fals e" Comment ="" LogTra ceEvents=" false" Sch edule="">
  1031            <Setti ng Target= "Host" Nam e="Inactiv ityTimeout ">0</Setti ng>
  1032            <Setti ng Target= "Host" Nam e="FetchRe gistryData ">1</Setti ng>
  1033            <Setti ng Target= "Host" Nam e="TraceOp erations"> *FULL*</Se tting>
  1034          </Item>
  1035        </Producti on>
  1036        ]]>
  1037       </Data>
  1038      </XData>
  1039     </Class>
  1040    
  1041    
  1042     <Class 
  1043      name="HS.L ocal.VA.HS .Access.CD A.Setup"
  1044     >
  1045      <IncludeCo de>
  1046       HS.Common
  1047      </IncludeC ode>
  1048      <Super>
  1049       %Registere dObject
  1050      </Super>
  1051      <TimeChang ed>
  1052       65049,4462 0
  1053      </TimeChan ged>
  1054      <TimeCreat ed>
  1055       65023,3486 5.725818
  1056      </TimeCrea ted>
  1057     
  1058      <Method 
  1059       name="Setu p"
  1060      >
  1061       <Descripti on>
  1062        D ##class( HS.Local.V A.HS.Acces s.CDA).Set up()
  1063       </Descript ion>
  1064       <ClassMeth od>
  1065        1
  1066       </ClassMet hod>
  1067       <FormalSpe c>
  1068        pLocalPath :%String=" ",pEnviron ment:%Stri ng="DEV",p Version:%S tring=""
  1069       </FormalSp ec>
  1070       <ReturnTyp e>
  1071        %Status
  1072       </ReturnTy pe>
  1073       <Implement ation>
  1074        <![CDATA[
  1075                Ne w $namespa ce
  1076                Se t $namespa ce = "HSLI B"
  1077                se t tSC = 1
  1078                se t pVars("T emplate")  = "HS.Loca l.VA.HS.Ac cess.CDA.P roduction"
  1079                do  ##class(H S.Util.Ins taller).In stallAcces sGateway(" HSACCCDA",  .pVars)
  1080                do  ##class(H S.Director ).StartAll ()
  1081            do ..S etupRegist ry(pLocalP ath, pEnvi ronment, p Version)
  1082        ]]>
  1083       </Implemen tation>
  1084      </Method>
  1085     
  1086      <Method 
  1087       name="Setu pRegistry"
  1088      >
  1089       <Descripti on>
  1090        D ##class( HS.Local.V A.HS.Acces s.CDA).Set upRegistry ()
  1091       </Descript ion>
  1092       <ClassMeth od>
  1093        1
  1094       </ClassMet hod>
  1095       <FormalSpe c>
  1096        pLocalPath :%String=" ",pEnviron ment:%Stri ng="DEV",p Version:%S tring=""
  1097       </FormalSp ec>
  1098       <ReturnTyp e>
  1099        %Status
  1100       </ReturnTy pe>
  1101       <Implement ation>
  1102        <![CDATA[
  1103                se t tSC = 1
  1104       
  1105                tr y {
  1106                         do . .CodedEntr ies(pLocal Path, pEnv ironment,  pVersion)
  1107                         do . .InfoTypes (pLocalPat h, pEnviro nment, pVe rsion)
  1108                         do . .OIDs(pLoc alPath, pE nvironment , pVersion )
  1109                         do . .ConfigReg istry(pLoc alPath, pE nvironment , pVersion )
  1110                         do . .ServiceRe gistry(pLo calPath, p Environmen t, pVersio n)
  1111                         do . .XMLSummar y(pLocalPa th, pEnvir onment, pV ersion)
  1112                         ;do  ..SetDefau ltSettings (pLocalPat h, pEnviro nment, pVe rsion)
  1113                         do . .Delivery( pLocalPath , pEnviron ment, pVer sion)
  1114                         ; Ed ge just do es Termino logy, so . .. you kno w... let's  do it
  1115                         ; If  ever the  Edge needs  more than  just that , things w e don't
  1116                         ; wa nt in the  Registry,  move the t erminology  stuff her e too.
  1117                         do . .SetupEdge (pLocalPat h, pEnviro nment, pVe rsion)
  1118                
  1119                $$ $ThrowOnEr ror(##clas s(HS.Direc tor).StopA ll())
  1120                $$ $ThrowOnEr ror(##clas s(HS.Direc tor).Start All())
  1121                }
  1122                ca tch sc {
  1123                         set  tSC = 0
  1124                         If $ $$WritePro g write !, "Problem S etting up  Registry f or CDA Gen eration: " _sc.Displa yString(0)
  1125                }
  1126                
  1127                If  $$$WriteP rog write  !,"Termino logy Class  Package I nstallatio n Return C ode = ",tS C
  1128        ]]>
  1129       </Implemen tation>
  1130      </Method>
  1131     
  1132      <Method 
  1133       name="Setu pEdge"
  1134      >
  1135       <Descripti on>
  1136        D ##class( HS.Local.V A.HS.Acces s.CDA).Set upEdge()
  1137        Hey, we ne ed the ter minology o n the edge s too, so  just calli ng it Setu pEdge for  external f olks
  1138       </Descript ion>
  1139       <ClassMeth od>
  1140        1
  1141       </ClassMet hod>
  1142       <FormalSpe c>
  1143        pLocalPath :%String=" ",pEnviron ment:%Stri ng="DEV",p Version:%S tring=""
  1144       </FormalSp ec>
  1145       <ReturnTyp e>
  1146        %Status
  1147       </ReturnTy pe>
  1148       <Implement ation>
  1149        <![CDATA[
  1150                se t tSC = 1
  1151       
  1152                tr y {
  1153                         do # #class(HS. Local.VA.T erminology .Setup).Se tup(pLocal Path, pEnv ironment)
  1154                }
  1155                ca tch {
  1156                         set  tSC = 0
  1157                         If $ $$WritePro g write !, "Problem l oading Ter minology C lasses"
  1158                }
  1159                
  1160                If  $$$WriteP rog write  !,"Termino logy Class  Package I nstallatio n Return C ode = ",tS C
  1161        ]]>
  1162       </Implemen tation>
  1163      </Method>
  1164     
  1165      <Method 
  1166       name="GetD efaultsByE nv"
  1167      >
  1168       <ClassMeth od>
  1169        1
  1170       </ClassMet hod>
  1171       <FormalSpe c>
  1172        <![CDATA[p Environmen t:%String= "DEV",&pLi st]]>
  1173       </FormalSp ec>
  1174       <ReturnTyp e>
  1175        %Status
  1176       </ReturnTy pe>
  1177       <Implement ation>
  1178        <![CDATA[
  1179                se t defs("DE V", "HomeC ommunityId ") = "2.16 .840.1.113 883.4.349"
  1180                se t defs("DE V", "MVIHo st") = " SERVER . DOMAIN . EXT "
  1181                se t defs("DE V", "MVIPo rt") = " PORT "
  1182                se t defs("DE V", "ESRHo st") = " SERVER . DOMAIN . EXT "
  1183                se t defs("DE V", "ESRPo rt") = " PORT "
  1184                se t defs("DE V", "STSHo st") = " SERVER . DOMAIN . EXT  "
  1185                se t defs("DE V", "STSPo rt") = " PORT "
  1186                
  1187                se t defs("DE VLocal", " HomeCommun ityId") =  "2.16.840. 1.113883.4 .349"
  1188                se t defs("DE VLocal", " MVIHost")  = "MOCK-HO ST"
  1189                se t defs("DE VLocal", " MVIPort")  = " PORT "
  1190                se t defs("DE VLocal", " ESRHost")  = "MOCK-HO ST"
  1191                se t defs("DE VLocal", " ESRPort")  = " PORT "
  1192                se t defs("DE VLocal", " STSHost")  = "MOCK-HO ST"
  1193                se t defs("DE VLocal", " STSPort")  = " PORT "
  1194                
  1195                se t defs("SQ A2", "Home CommunityI d") = "2.1 6.840.1.11 3883.4.349 "
  1196                se t defs("SQ A2", "MVIH ost") = " SERVER . DOMAIN . EXT "
  1197                se t defs("SQ A2", "MVIP ort") = " PORT "
  1198                se t defs("SQ A2", "ESRH ost") = " SERVER . DOMAIN . EXT "
  1199                se t defs("SQ A2", "ESRP ort") = " PORT "
  1200                se t defs("SQ A2", "STSH ost") = " SERVER . DOMAIN . EXT  "
  1201                se t defs("SQ A2", "STSP ort") = " PORT "
  1202                
  1203                se t defs("SQ A1", "Home CommunityI d") = "2.1 6.840.1.11 3883.4.349 "
  1204                se t defs("SQ A1", "MVIH ost") = " SERVER . DOMAIN . EXT "
  1205                se t defs("SQ A1", "MVIP ort") = " PORT "
  1206                se t defs("SQ A1", "ESRH ost") = " SERVER . DOMAIN . EXT "
  1207                se t defs("SQ A1", "ESRP ort") = " PORT "
  1208                se t defs("SQ A1", "STSH ost") = " SERVER . DOMAIN . EXT  "
  1209                se t defs("SQ A1", "STSP ort") = " PORT "
  1210                
  1211                se t defs("PR EPROD", "H omeCommuni tyId") = " 2.16.840.1 .113883.4. 349"
  1212                se t defs("PR EPROD", "M VIHost") =  " SERVER . DOMAIN . EXT "
  1213                se t defs("PR EPROD", "M VIPort") =  " PORT "
  1214                se t defs("PR EPROD", "E SRHost") =  " SERVER . DOMAIN . EXT "
  1215                se t defs("PR EPROD", "E SRPort") =  " PORT "
  1216                se t defs("PR EPROD", "S TSHost") =  " SERVER . DOMAIN . EXT "
  1217                se t defs("PR EPROD", "S TSPort") =  "7305"
  1218                
  1219                se t defs("PR OD", "Home CommunityI d") = "2.1 6.840.1.11 3883.4.349 "
  1220                se t defs("PR OD", "MVIH ost") = "s ervices.ea uth. DOMAIN . EXT "
  1221                se t defs("PR OD", "MVIP ort") = " PORT "
  1222                se t defs("PR OD", "ESRH ost") = " SERVER . DOMAIN . EXT "
  1223                se t defs("PR OD", "ESRP ort") = " PORT "
  1224                se t defs("PR OD", "STSH ost") = " SERVER . DOMAIN . EXT "
  1225                se t defs("PR OD", "STSP ort") = " PORT "
  1226                
  1227                Me rge pList  = defs(pEn vironment)
  1228                
  1229                qu it $$$OK
  1230        ]]>
  1231       </Implemen tation>
  1232      </Method>
  1233     
  1234      <Method 
  1235       name="Code dEntries"
  1236      >
  1237       <Descripti on>
  1238        Setup code d entries  required b y XDS regi stry metad ata valida tion
  1239         
  1240       </Descript ion>
  1241       <ClassMeth od>
  1242        1
  1243       </ClassMet hod>
  1244       <FormalSpe c>
  1245        pLocalPath :%String=" ",pEnviron ment:%Stri ng="DEV",p Version:%S tring=""
  1246       </FormalSp ec>
  1247       <Implement ation>
  1248        <![CDATA[
  1249                If  $$$WriteP rog Write  !,"HS.Loca l.VA.HS.Ac cess.CDA.S etup:Coded Entries -  adding LOI NC codes f or XDS"
  1250       
  1251                Ne w $namespa ce
  1252                Se t $namespa ce = "HSRE GISTRY"
  1253       
  1254                #;  LOINC cod es
  1255                Se t oid = "2 .16.840.1. 113883.6.1 "
  1256                Se t codes("3 4133-9") =  "Patient  Summary"
  1257                Se t codes("1 1506-3") =  "Encounte r Summary"
  1258                Se t codes("2 8570-0") =  "Provider -Unspecifi ed Procedu re Note"
  1259                Se t codes("1 1488-4") =  "Consult  Note"
  1260                Se t codes("1 8842-5") =  "Discharg e Summary"
  1261                Se t codes("3 4117-2") =  "History  and Physic al"
  1262                Se t codes("2 7898-6") =  "Patholog y Study"
  1263                Se t codes("1 8733-6") =  "Progress  Note"
  1264                Se t codes("1 8733-6") =  "Progress  Note"
  1265                Se t codes("1 8726-0") =  "Radiolog y Study"
  1266                Se t codes("2 9752-3") =  "Perioper ative Repo rt"
  1267                Fo r type = " contentTyp eCode","cl assCode"," typeCode"  {
  1268                         If $ $$WritePro g Write !, ?4,type
  1269                         Set  code="" Fo r { Set co de = $O(co des(code), 1,desc) Qu it:code=""
  1270                                  If $$$ WriteProg  Write !,?8 ,oid," ",c ode," ",de sc
  1271                                  $$$Thr owOnError( ##class(HS .IHE.Coded Entry).Cre ate(type,o id,code,de sc))  
  1272                         }
  1273                }
  1274                
  1275                If  $$$WriteP rog Write  !,"HS.Loca l.VA.HS.Ac cess.CDA.S etup:Coded Entries -  success"
  1276        ]]>
  1277       </Implemen tation>
  1278      </Method>
  1279     
  1280      <Method 
  1281       name="Info Types"
  1282      >
  1283       <Descripti on>
  1284        Prepopulat e "seen" d ocument su btypes so  they can b e specifie d in push  filter
  1285       </Descript ion>
  1286       <ClassMeth od>
  1287        1
  1288       </ClassMet hod>
  1289       <FormalSpe c>
  1290        pLocalPath :%String=" ",pEnviron ment:%Stri ng="DEV",p Version:%S tring=""
  1291       </FormalSp ec>
  1292       <Implement ation>
  1293        <![CDATA[
  1294                Ne w $namespa ce
  1295                Se t $namespa ce = "HSRE GISTRY"
  1296                
  1297                If  $$$WriteP rog Write  !,"HS.Loca l.VA.HS.Ac cess.CDA.S etup:InfoT ypes - add ing docume nt types"
  1298                
  1299                #;  document  type codes  used for  push
  1300                Fo r type="CP ","CR","DS ","HP","LR ","PN","RA ","SR","PR OGRESS NOT E" {
  1301                         If $ $$WritePro g Write !, ?4,"DOC.", type
  1302                         Set  ^HS.InfoTy pesSub("DO C."_type)= ""
  1303                }
  1304                
  1305                If  $$$WriteP rog Write  !,"HS.Loca l.VA.HS.Ac cess.CDA.S etup:InfoT ypes - suc cess"
  1306        ]]>
  1307       </Implemen tation>
  1308      </Method>
  1309     
  1310      <Method 
  1311       name="OIDs "
  1312      >
  1313       <Descripti on>
  1314        Setup OIDs
  1315       </Descript ion>
  1316       <ClassMeth od>
  1317        1
  1318       </ClassMet hod>
  1319       <FormalSpe c>
  1320        pLocalPath :%String=" ",pEnviron ment:%Stri ng="DEV",p Version:%S tring=""
  1321       </FormalSp ec>
  1322       <Implement ation>
  1323        <![CDATA[
  1324                Ne w $namespa ce
  1325                Se t $namespa ce = "HSRE GISTRY"
  1326                
  1327                Se t tSC = .. GetDefault sByEnv(pEn vironment,  .tDefs)
  1328                
  1329                If  $$$WriteP rog Write  !,"HS.Loca l.VA.HS.Ac cess.CDA.S etup:OIDs  - adding O IDs"
  1330       
  1331                Se t tOid = # #class(HS. Data.OIDMa p).ObjectF orOID("2.1 6.840.1.11 3883.4.349 ")
  1332            If 'tO id {
  1333                If  $$$WriteP rog Write  !,?4,"USVH A - 2.16.8 40.1.11388 3.4.349"
  1334                $$ $ThrowOnEr ror(##clas s(HS.Data. OIDMap).Fi leOID("USV HA","CodeS ystem","2. 16.840.1.1 13883.4.34 9","Depart ment of Ve terans Aff airs","Ass igningAuth ority"))
  1335            } Else  {
  1336                If  $$$WriteP rog Write  !,?4,"USVH A - 2.16.8 40.1.11388 3.4.349 al ready exis ts, skippi ng"
  1337            }
  1338       
  1339                Se t tOid = # #class(HS. Data.OIDMa p).ObjectF orOID(tDef s("HomeCom munityId") )
  1340                if  'tOid {
  1341                         If $ $$WritePro g Write !, ?4,"VA - " _tDefs("Ho meCommunit yId")
  1342                         $$$T hrowOnErro r(##class( HS.Data.OI DMap).File OID("VA"," HomeCommun ity",tDefs ("HomeComm unityId"), "Departmen t of Veter ans Affair s","Assign ingAuthori ty"))
  1343                }  Else {
  1344                         If $ $$WritePro g Write !, ?4,"VA - " _tDefs("Ho meCommunit yId")_" al ready exis ts, skippi ng"
  1345                }
  1346                
  1347                If  pEnvironm ent = "DEV " {
  1348                         ; ne ed to add  OIDs for e ach Edge.   Modify be low lines  to accomod ate Edges  connected  to your Ac cess Gatew ay
  1349                         If $ $$WritePro g Write !, "HS.Local. VA.HS.Acce ss.CDA.Set up:OIDs -  adding OID s for each  Edge"
  1350                         Set  tOid = ##c lass(HS.Da ta.OIDMap) .ObjectFor OID("2.16. 840.1.1138 83.4.349.9 83")
  1351                         if ' tOid {
  1352                                  If $$$ WriteProg  Write !,?4 ,"Edge - C hyShr"
  1353                                  $$$Thr owOnError( ##class(HS .Data.OIDM ap).FileOI D("983","F acility"," 2.16.840.1 .113883.4. 349.983"," Cheyenne V eterans Af fairs Hosp ital","Ass igningAuth ority"))
  1354                         } El se {
  1355                                  If $$$ WriteProg  Write !,?4 ,"Edge - C hyShr alea dy exists,  skipping"
  1356                         }
  1357                         
  1358                         Set  tOid = ##c lass(HS.Da ta.OIDMap) .ObjectFor OID("2.16. 840.1.1138 83.4.349.9 83")
  1359                         if ' tOid {
  1360                                  If $$$ WriteProg  Write !,?4 ,"Edge - D aytShr"
  1361                                  $$$Thr owOnError( ##class(HS .Data.OIDM ap).FileOI D("984","F acility"," 2.16.840.1 .113883.4. 349.984"," Dayton Vet erans Affa irs Hospit al","Assig ningAuthor ity"))
  1362                         } El se {
  1363                                  If $$$ WriteProg  Write !,?4 ,"Edge - D aytShr ale ady exists , skipping "
  1364                         }
  1365                }
  1366                
  1367                ;  OIDs for o ur reposit ories.
  1368                Se t tOid = # #class(HS. Data.OIDMa p).ObjectF orOID(tDef s("HomeCom munityId") _".1")
  1369                if  'tOid {
  1370                         If $ $$WritePro g Write !, ?4,"HSACCC DA OID ... "
  1371                         $$$T hrowOnErro r(##class( HS.Data.OI DMap).File OID("HSACC CDA", "Rep ository",  tDefs("Hom eCommunity Id")_".1",  "On-Deman d Reposito ry"))
  1372                }  Else {
  1373                         If $ $$WritePro g Write !, ?4,"HSACCC DA OID ale ady exists , skipping "
  1374                }
  1375                Se t tOid = # #class(HS. Data.OIDMa p).ObjectF orOID(tDef s("HomeCom munityId") _".2")
  1376                if  'tOid {
  1377                         If $ $$WritePro g Write !, ?4,"HSREPO SITORY OID  ..."
  1378                         $$$T hrowOnErro r(##class( HS.Data.OI DMap).File OID("HSREP OSITORY",  "Repositor y", tDefs( "HomeCommu nityId")_" .2", "Stab le Reposit ory"))
  1379                }  Else {
  1380                         If $ $$WritePro g Write !, ?4,"HSREPO SITORY OID  aleady ex ists, skip ping"
  1381                }
  1382                
  1383                If  $$$WriteP rog Write  !,"HS.Loca l.VA.HS.Ac cess.CDA.S etup:OIDs  - success"
  1384        ]]>
  1385       </Implemen tation>
  1386      </Method>
  1387     
  1388      <Method 
  1389       name="Conf igRegistry "
  1390      >
  1391       <Descripti on>
  1392        Setup conf iguration  registry i tems
  1393       </Descript ion>
  1394       <ClassMeth od>
  1395        1
  1396       </ClassMet hod>
  1397       <FormalSpe c>
  1398        pLocalPath :%String=" ",pEnviron ment:%Stri ng="DEV",p Version:%S tring=""
  1399       </FormalSp ec>
  1400       <Implement ation>
  1401        <![CDATA[
  1402                Ne w $namespa ce
  1403                Se t $namespa ce = "HSRE GISTRY"
  1404                
  1405                If  $$$WriteP rog Write  !,"HS.Loca l.VA.HS.Ac cess.CDA.S etup:Confi gRegistry  - updating  configura tion regis try"
  1406       
  1407                #;  IHE domai
  1408                Se t data("\I HE\Affinit yDomain")  = "VA"
  1409                Se t data("\I HE\HomeCom munity") =  "VA"
  1410       
  1411                #;  used by C DA transfo rms to pop ulate cust odian
  1412                Se t data("\G eneral\IHE Version")  = "1"
  1413                Se t data("\H omeCommuni ty\Address \City") =  "Washingto n"
  1414                Se t data("\H omeCommuni ty\Address \Country")  = "USA"
  1415                Se t data("\H omeCommuni ty\Address \State") =  "DC"
  1416                Se t data("\H omeCommuni ty\Address \StreetLin e1") = "81 0 Vermont  Avenue, NW "
  1417                Se t data("\H omeCommuni ty\Address \Zip") = " 20420"
  1418                Se t data("\H omeCommuni ty\Telecom \Workphone ") = "(123 ) 456-7890 "
  1419                
  1420                #;  TODO - wh at should  this be fo r the VA p atient/enc ounter doc , the C62  does not u se it
  1421                Se t data("\L egalAuthen ticator\Ad dress\City ") = "Wash ington"
  1422                Se t data("\L egalAuthen ticator\Ad dress\Coun try") = "U SA"
  1423                Se t data("\L egalAuthen ticator\Ad dress\Stat e") = "DC"
  1424                Se t data("\L egalAuthen ticator\Ad dress\Stre etLine1")  = "810 Ver mont Avenu e, NW"
  1425                Se t data("\L egalAuthen ticator\Ad dress\Zip" ) = "20420 "
  1426                Se t data("\L egalAuthen ticator\Na me\Family" ) = "Inter Systems"
  1427                Se t data("\L egalAuthen ticator\Na me\Given")  = "Health Share"
  1428                Se t data("\L egalAuthen ticator\Te lecom\Work phone") =  "(123) 456 -7890"
  1429                
  1430                Se t key="" F or { Set k ey = $o(da ta(key),1, value) Qui t:key=""
  1431                         If $ $$WritePro g Write !, ?4,key," =  ",value
  1432                         $$$T hrowOnErro r(##class( HS.Registr y.Config). AddUpdateK eyValue(ke y,value))
  1433                }
  1434       
  1435                If  $$$WriteP rog Write  !,"HS.Loca l.VA.HS.Ac cess.CDA.S etup:Confi gRegistry  - success"
  1436        ]]>
  1437       </Implemen tation>
  1438      </Method>
  1439     
  1440      <Method 
  1441       name="Serv iceRegistr y"
  1442      >
  1443       <Descripti on>
  1444        Setup serv ice Regist ry
  1445       </Descript ion>
  1446       <ClassMeth od>
  1447        1
  1448       </ClassMet hod>
  1449       <FormalSpe c>
  1450        pLocalPath :%String=" ",pEnviron ment:%Stri ng="DEV",p Version:%S tring=""
  1451       </FormalSp ec>
  1452       <Implement ation>
  1453        <![CDATA[
  1454                Ne w $namespa ce
  1455                Se t $namespa ce = "HSRE GISTRY"
  1456                
  1457                Se t tSC = .. GetDefault sByEnv(pEn vironment,  .tDefs)
  1458                
  1459                If  $$$WriteP rog Write  !,"HS.Loca l.VA.HS.Ac cess.CDA.S etup:Servi ceRegistry  - start"
  1460       
  1461                #;  HS.Util.I nstaller.K it.IHE.XDS b.Registry  marks the  wrong ser vice as th e XDSb.Que ry device,
  1462                #;  which is  interferin g with the  "End Poin t" drop do wn in push  system de livery pol icy setup
  1463                #d im service  as HS.Reg istry.Serv ice.SOAP
  1464                If  $$$WriteP rog Write  !,?4,"Fixi ng XDSb.Re gistry ser vice..."
  1465                Se t service  = ##class( HS.Registr y.Service. SOAP).EndP ointForNam eType("XDS b.Registry ","SOAP",. sc) $$$Thr owOnError( sc)
  1466                Se t service. DeviceFunc tion = ""
  1467                Se t service. Push = 1
  1468                $$ $ThrowOnEr ror(servic e.%Save())
  1469                If  $$$WriteP rog Write  !,?4,"Fixi ng XDSb.Qu ery servic e..."
  1470                Se t service  = ##class( HS.Registr y.Service. SOAP).EndP ointForNam eType("XDS b.Query"," SOAP",.sc)  $$$ThrowO nError(sc)
  1471                Se t service. DeviceFunc tion = "XD Sb.Query"
  1472                Se t service. Push = 0
  1473                $$ $ThrowOnEr ror(servic e.%Save())
  1474                
  1475                If  $$$WriteP rog Write  !,?4,"Add/ Update VA. CTService  service... "
  1476                Se t service  = ##class( HS.Registr y.Service. SOAP).EndP ointForNam eType("VA. CTService" ,"SOAP",.s c)
  1477                If  $$$WriteP rog Write  !,?4,"trie d VA.CTSer vice servi ce..."
  1478                if  'service  {
  1479                If  $$$WriteP rog Write  !,?4,"VA.C TService s ervice doe sn't exist , adding n ew..."
  1480                         set  service =  ##class(HS .Registry. Service.SO AP).%New()
  1481                         set  service.Na me = "VA.C TService"
  1482                }
  1483                se t service. Host = tDe fs("STSHos t")
  1484                se t service. Port = tDe fs("STSPor t")
  1485                se t service. URL = "/st s.webservi ce/ctServi ce"
  1486                se t service. SOAPVersio n = "1.1"
  1487                $$ $ThrowOnEr ror(servic e.%Save())
  1488       
  1489                If  $$$WriteP rog Write  "OK"
  1490       
  1491                If  $$$WriteP rog Write  !,"HS.Loca l.VA.HS.Ac cess.CDA.S etup:Servi ceRegistry  - success "
  1492        ]]>
  1493       </Implemen tation>
  1494      </Method>
  1495     
  1496      <Method 
  1497       name="XMLS ummary"
  1498      >
  1499       <Descripti on>
  1500        Setup XML  Summaries
  1501       </Descript ion>
  1502       <ClassMeth od>
  1503        1
  1504       </ClassMet hod>
  1505       <FormalSpe c>
  1506        pLocalPath :%String=" ",pEnviron ment:%Stri ng="DEV",p Version:%S tring=""
  1507       </FormalSp ec>
  1508       <Implement ation>
  1509        <![CDATA[
  1510                Ne w $namespa ce
  1511                Se t $namespa ce = "HSRE GISTRY"
  1512                
  1513                If  $$$WriteP rog Write  !,"HS.Loca l.VA.HS.Ac cess.CDA.S etup:XMLSu mmary - ad ding XML s ummaries"
  1514       
  1515                Se t items($i (items),"C ode") = "Z -CCDA-Pati ent"
  1516                Se t items(it ems,"Descr iption") =  "VA Custo m Patient  Summary (C CDA)"
  1517                Se t items(it ems,"SDAVe rsion") =  3
  1518                Se t items(it ems,"Forma tCode") =  "urn:hl7-o rg:sdwg:cc da-structu redBody:1. 1"
  1519                Se t items(it ems,"Forma tScheme")  = "1.3.6.1 .4.1.19376 .1.2.3"
  1520                Se t items(it ems,"Secti onTypes")  = $LB("PAT ","ADV","A LG","APT", "DXG","ENC ","PRB","H IS","LAB", "OBS","RAD ","PRC","P EX","MED", "VXU","DOC ")
  1521                
  1522                Se t items($i (items),"C ode") = "Z -CCDA-Enco unter"
  1523                Se t items(it ems,"Descr iption") =  "VA Custo m Encounte r Summary  (CCDA)"
  1524                Se t items(it ems,"SDAVe rsion") =  3
  1525                Se t items(it ems,"Forma tCode") =  "urn:hl7-o rg:sdwg:cc da-structu redBody:2. 1"
  1526                Se t items(it ems,"Forma tScheme")  = "1.3.6.1 .4.1.19376 .1.2.3"
  1527                Se t items(it ems,"Secti onTypes")  = $LB("PAT ","ADV","A LG","APT", "DXG","ENC ","PRB","H IS","LAB", "OBS","RAD ","PRC","P EX","MED", "VXU","DOC ")
  1528       
  1529                Se t items($i (items),"C ode") = "Z -C62"
  1530                Se t items(it ems,"Descr iption") =  "VA Custo m Unstruct ured Docum ent (C62)"
  1531                Se t items(it ems,"SDAVe rsion") =  3
  1532                Se t items(it ems,"Forma tCode") =  "urn:ihe:i ti:xds-sd: text:2008"
  1533                Se t items(it ems,"Forma tScheme")  = "1.3.6.1 .4.1.19376 .1.2.3"
  1534                Se t items(it ems,"Secti onTypes")  = $LB("PAT ","ENC","D OC")
  1535                
  1536                Se t items($i (items),"C ode") = "Z -VA-CCDAv2 1-CCD"
  1537                Se t items(it ems,"Descr iption") =  "VA Custo m Patient  Summary (C CDA) v2.1"
  1538                Se t items(it ems,"SDAVe rsion") =  3
  1539                Se t items(it ems,"Forma tCode") =  "urn:hl7-o rg:sdwg:cc da-structu redBody:2. 1"
  1540                Se t items(it ems,"Forma tScheme")  = "1.3.6.1 .4.1.19376 .1.2.3"
  1541                Se t items(it ems,"Secti onTypes")  = $LB("PAT ","ADV","A LG","APT", "DXG","ENC ","PRB","H IS","LAB", "OBS","RAD ","PRC","P EX","MED", "VXU","DOC ")
  1542                
  1543                Se t items($i (items),"C ode") = "Z -C32v25"
  1544                Se t items(it ems,"Descr iption") =  "VA Custo m Continui ty of Care  Document  (CCD, HITS P C32)"
  1545                Se t items(it ems,"SDAVe rsion") =  3
  1546                Se t items(it ems,"Forma tCode") =  "urn:ihe:p cc:xphr:20 07"
  1547                Se t items(it ems,"Forma tScheme")  = "IHE PCC "
  1548                Se t items(it ems,"Secti onTypes")  = $LB("PAT ","ALG","E NC","PRB", "LAB","OBS ","PRC","M ED","VXU", "DOC")
  1549                
  1550                Se t items($i (items),"C ode") = "Z -MHV-CCDA- CCD"
  1551                Se t items(it ems,"Descr iption") =  "VA Custo m MyHealth  eVet Cust om Patient  Summary ( CCDA)"
  1552                Se t items(it ems,"SDAVe rsion") =  3
  1553                Se t items(it ems,"Forma tCode") =  "urn:hl7-o rg:sdwg:cc da-structu redBody:1. 1"
  1554                Se t items(it ems,"Forma tScheme")  = "1.3.6.1 .4.1.19376 .1.2.3"
  1555                Se t items(it ems,"Secti onTypes")  = $LB("PAT ","ADV","A LG","APT", "DXG","ENC ","PRB","H IS","LAB", "OBS","RAD ","PRC","P EX","MED", "VXU","DOC ")
  1556                
  1557                Se t items($i (items),"C ode") = "Z -MHV-CCDAv 21-CCD"
  1558                Se t items(it ems,"Descr iption") =  "VA Custo m MyHealth  eVet Cust om Patient  Summary ( CCDA) v2.1 "
  1559                Se t items(it ems,"SDAVe rsion") =  3
  1560                Se t items(it ems,"Forma tCode") =  "urn:hl7-o rg:sdwg:cc da-structu redBody:2. 1"
  1561                Se t items(it ems,"Forma tScheme")  = "1.3.6.1 .4.1.19376 .1.2.3"
  1562                Se t items(it ems,"Secti onTypes")  = $LB("PAT ","ADV","A LG","APT", "DXG","ENC ","PRB","H IS","LAB", "OBS","RAD ","PRC","P EX","MED", "VXU","DOC ")
  1563                
  1564                Fo r i = 1:1: items {
  1565                         If $ $$WritePro g Write !, ?4,items(i ,"Code")
  1566                         Set  item = ##c lass(HS.Re ports.Pati ent.XMLSum maryType). %New()
  1567                         Set  item.Code  = $G(items (i,"Code") )
  1568                         Set  item.Descr iption = $ G(items(i, "Descripti on"))
  1569                         Set  item.Resou rceRequire d = $G(ite ms(i,"Reso urceRequir ed"))
  1570                         Set  item.SDAVe rsion = $G (items(i," SDAVersion "))
  1571                         Set  item.Forma tCode = $G (items(i," FormatCode "))
  1572                         Set  item.Forma tScheme =  $G(items(i ,"FormatSc heme"))
  1573                         For  j=1:1:$LL( items(i,"S ectionType s")) { 
  1574                                  Do ite m.SectionT ypes.Inser t($LI(item s(i,"Secti onTypes"), j))
  1575                         }
  1576                         $$$T hrowOnErro r(##class( HS.Util.Hu bServices) .InvokeHub Service("H S.Hub.HSWS .WebServic es","HS.Hu b.HSWS.Web ServicesCl ient","Add EditXMLSum maryType", .sc,item))
  1577                         $$$T hrowOnErro r(sc)
  1578                }
  1579                
  1580                If  $$$WriteP rog Write  !,"HS.Loca l.VA.HS.Ac cess.CDA.S etup:XMLSu mmary - su ccess"
  1581        ]]>
  1582       </Implemen tation>
  1583      </Method>
  1584     
  1585      <Method 
  1586       name="Deli very"
  1587      >
  1588       <Descripti on>
  1589        Setup deli very for o n-demands
  1590       </Descript ion>
  1591       <ClassMeth od>
  1592        1
  1593       </ClassMet hod>
  1594       <FormalSpe c>
  1595        pLocalPath :%String=" ",pEnviron ment:%Stri ng="DEV",p Version:%S tring=""
  1596       </FormalSp ec>
  1597       <Implement ation>
  1598        <![CDATA[
  1599                Ne w $namespa ce
  1600                Se t $namespa ce = "HSRE GISTRY"
  1601                If  $$$WriteP rog Write  !,"HS.Loca l.VA.HS.Ac cess.CDA.S etup:Deliv ery - star ting"
  1602            Hang 5
  1603                
  1604                If  $$$WriteP rog Write  !,?4,"Do # #class(HS. Push.Subsc ription.Sy stemPolicy ).%DeleteE xtent()"
  1605                Do  ##class(H S.Push.Sub scription. SystemPoli cy).%Delet eExtent()
  1606                If  $$$WriteP rog Write  !,?4,"Do # #class(HS. Push.Deliv ery.System Policy).%D eleteExten t()"
  1607                Do  ##class(H S.Push.Del ivery.Syst emPolicy). %DeleteExt ent()
  1608                If  $$$WriteP rog Write  !,?4,"Do # #class(HS. Push.Regis try.Recipi ent).%Dele teExtent() "
  1609                Do  ##class(H S.Push.Reg istry.Reci pient).%De leteExtent ()
  1610                If  $$$WriteP rog Write  !,?4,"Do # #class(HS. Push.Deliv eryOption) .%DeleteEx tent()"
  1611                Do  ##class(H S.Push.Del iveryOptio n).%Delete Extent()
  1612                If  $$$WriteP rog Write  !,?4,"Do # #class(HS. Push.Trans formation) .%DeleteEx tent()"
  1613                Do  ##class(H S.Push.Tra nsformatio n).%Delete Extent()
  1614                
  1615                If  $$$WriteP rog Write  !,?4,"Push  Transform s"
  1616                
  1617                Se t transfor m = ##clas s(HS.Push. WebService s.Containe rs.Transfo rmation).% New()
  1618                Se t transfor m.Name                 = "CCDA P atient Sum mary"
  1619                Se t transfor m.ContentS cope        = "MPI"
  1620                Se t transfor m.Transfor mationType  = "XSLT"
  1621                Se t transfor m.XSLTFile Spec        = "Z-CCDA -Patient"
  1622                Se t txPatien tCCDA = $$ addTransfo rm(transfo rm)
  1623                
  1624                ;  Add for ea ch on-dema nd documen t format y ou need
  1625                Se t transfor m = ##clas s(HS.Push. WebService s.Containe rs.Transfo rmation).% New()
  1626                Se t transfor m.Name                 = "CCDA v 2.1 Patien t Summary"
  1627                Se t transfor m.ContentS cope        = "MPI"
  1628                Se t transfor m.Transfor mationType  = "XSLT"
  1629                Se t transfor m.XSLTFile Spec        = "Z-VA-C CDAv21-CCD "
  1630                Se t txPatien tCCDA21 =  $$addTrans form(trans form)
  1631                
  1632                Se t transfor m = ##clas s(HS.Push. WebService s.Containe rs.Transfo rmation).% New()
  1633                Se t transfor m.Name                 = "MHV CC DA Patient  Summary"
  1634                Se t transfor m.ContentS cope        = "MPI"
  1635                Se t transfor m.Transfor mationType  = "XSLT"
  1636                Se t transfor m.XSLTFile Spec        = "Z-MHV- CCDA-CCD"
  1637                Se t txPatien tMHVCCDA =  $$addTran sform(tran sform)
  1638                
  1639                Se t transfor m = ##clas s(HS.Push. WebService s.Containe rs.Transfo rmation).% New()
  1640                Se t transfor m.Name                 = "MHV CC DA v2.1 Pa tient Summ ary"
  1641                Se t transfor m.ContentS cope        = "MPI"
  1642                Se t transfor m.Transfor mationType  = "XSLT"
  1643                Se t transfor m.XSLTFile Spec        = "Z-MHV- CCDAv21-CC D"
  1644                Se t txPatien tMHVCCDA21  = $$addTr ansform(tr ansform)
  1645                
  1646                Se t transfor m = ##clas s(HS.Push. WebService s.Containe rs.Transfo rmation).% New()
  1647                Se t transfor m.Name                 = "C32 Pa tient Summ ary"
  1648                Se t transfor m.ContentS cope        = "MPI"
  1649                Se t transfor m.Transfor mationType  = "XSLT"
  1650                Se t transfor m.XSLTFile Spec        = "Z-C32v 25"
  1651                Se t txPatien tC32 = $$a ddTransfor m(transfor m)
  1652                
  1653                Se t transfor m = ##clas s(HS.Push. WebService s.Containe rs.Transfo rmation).% New()
  1654                Se t transfor m.Name                 = "CCDA E ncounter S ummary"
  1655                Se t transfor m.ContentS cope        = "Enc"
  1656                Se t transfor m.Transfor mationType  = "XSLT"
  1657                Se t transfor m.XSLTFile Spec        = "Z-CCDA -Encounter "
  1658                Se t txEncoun ter = $$ad dTransform (transform )
  1659                
  1660                Se t transfor m = ##clas s(HS.Push. WebService s.Containe rs.Transfo rmation).% New()
  1661                Se t transfor m.Name                 = "C62 Un structured  Document"
  1662                Se t transfor m.ContentS cope        = "Enc"
  1663                Se t transfor m.Transfor mationType  = "XSLT"
  1664                Se t transfor m.XSLTFile Spec        = "Z-C62"
  1665                Se t txDocume nt = $$add Transform( transform)
  1666                
  1667                If  $$$WriteP rog Write  !,?4,"Deli very Optio ns"
  1668                
  1669                Se t option =  ##class(H S.Push.Web Services.C ontainers. DeliveryOp tion).%New ()
  1670                Se t option.N ame               = " XDSb OnDem and"
  1671                Se t option.D eliveryTyp e      = " XDSb.OnDem and"
  1672                Se t option.D eliveryOpe ration = " HS.IHE.XDS b.Push.Ope rations"
  1673                Se t optOnDem and = $$ad dOption(op tion)
  1674       
  1675                If  $$$WriteP rog Write  !,?4,"Rece iving Syst em"
  1676                
  1677                Se t system =  ##class(H S.Push.Web Services.C ontainers. Recipient) .%New()
  1678                Se t system.N ame         = "Defaul t"
  1679                Se t system.D escription  = "Intern al push (e .g. XDSb o n-demand r egistratio n)"
  1680                Se t system.A ctive       = 1
  1681                Se t sysDefau lt = $$add System(sys tem)
  1682                
  1683                Se t policy =  ##class(H S.Push.Web Services.C ontainers. DeliveryPo licy).%New ()
  1684                Se t policy.R ecipientTy pe  = "sys tem"
  1685                Se t policy.R egistryId      = sysD efault
  1686                Se t policy.N ame            = "Reg ister OnDe mand"
  1687                Se t policy.D eliveryOpt ion = optO nDemand
  1688                Se t policy.T ransformat ion = txPa tientCCDA2 1
  1689                Se t policy.A ccessGatew ay  = ..ge tGatewayID Retry("HSA CCCDA", 1,  30)
  1690                Se t policy.E ndPoint        = ..ge tServiceID ("XDSb.Reg istry")
  1691                Se t polOnDem and = $$ad dPolicy(po licy)
  1692                
  1693                Se t subscrip tion = ##c lass(HS.Pu sh.WebServ ices.Conta iners.Subs criptionPo licy).%New ()
  1694                Se t subscrip tion.Recip ientType      = "syst em"
  1695                Se t subscrip tion.Regis tryId         = sysDe fault
  1696                Se t subscrip tion.Name                = "OnDe mand Patie nt Summary "
  1697                Se t subscrip tion.Subsc riptionBas is = "A"   //All
  1698                Se t subscrip tion.Deliv eryPolicy     = polOn Demand
  1699                Se t subscrip tion.Trans formation     = txPat ientCCDA
  1700                Se t subscrip tion.Subje ct            = "Pati ent Summar y"
  1701                Se t subscrip tion.Effec tiveDate      = +$H
  1702                Se t subscrip tion.Expir ationDate     = ""
  1703                Se t subPatie nt = $$add Subscripti on(subscri ption)
  1704                
  1705                ;  add subscr iption for  each regi stered doc ument/form at
  1706                Se t subscrip tion = ##c lass(HS.Pu sh.WebServ ices.Conta iners.Subs criptionPo licy).%New ()
  1707                Se t subscrip tion.Recip ientType      = "syst em"
  1708                Se t subscrip tion.Regis tryId         = sysDe fault
  1709                Se t subscrip tion.Name                = "OnDe mand v2.1  Patient Su mmary"
  1710                Se t subscrip tion.Subsc riptionBas is = "A"   //All
  1711                Se t subscrip tion.Deliv eryPolicy     = polOn Demand
  1712                Se t subscrip tion.Trans formation     = txPat ientCCDA21
  1713                Se t subscrip tion.Subje ct            = "Pati ent Summar y 2.1"
  1714                Se t subscrip tion.Effec tiveDate      = +$H
  1715                Se t subscrip tion.Expir ationDate     = ""
  1716                Se t subPatie nt = $$add Subscripti on(subscri ption)
  1717                
  1718                ;S et subscri ption = ## class(HS.P ush.WebSer vices.Cont ainers.Sub scriptionP olicy).%Ne w()
  1719                ;S et subscri ption.Reci pientType      = "sys tem"
  1720                ;S et subscri ption.Regi stryId         = sysD efault
  1721                ;S et subscri ption.Name                = "MHV  OnDemand  Patient Su mmary"
  1722                ;S et subscri ption.Subs criptionBa sis = "A"   //All
  1723                ;S et subscri ption.Deli veryPolicy     = polO nDemand
  1724                ;S et subscri ption.Tran sformation     = txPa tientMHVCC DA
  1725                ;S et subscri ption.Subj ect            = "MHV  Patient S ummary"
  1726                ;S et subscri ption.Effe ctiveDate      = +$H
  1727                ;S et subscri ption.Expi rationDate     = ""
  1728                ;S et subPati ent = $$ad dSubscript ion(subscr iption)
  1729                
  1730                ;S et subscri ption = ## class(HS.P ush.WebSer vices.Cont ainers.Sub scriptionP olicy).%Ne w()
  1731                ;S et subscri ption.Reci pientType      = "sys tem"
  1732                ;S et subscri ption.Regi stryId         = sysD efault
  1733                ;S et subscri ption.Name                = "MHV  OnDemand  v2.1 Patie nt Summary "
  1734                ;S et subscri ption.Subs criptionBa sis = "A"   //All
  1735                ;S et subscri ption.Deli veryPolicy     = polO nDemand
  1736                ;S et subscri ption.Tran sformation     = txPa tientMHVCC DA21
  1737                ;S et subscri ption.Subj ect            = "MHV  Patient S ummary 2.1 "
  1738                ;S et subscri ption.Effe ctiveDate      = +$H
  1739                ;S et subscri ption.Expi rationDate     = ""
  1740                ;S et subPati ent = $$ad dSubscript ion(subscr iption)
  1741                
  1742                Se t subscrip tion = ##c lass(HS.Pu sh.WebServ ices.Conta iners.Subs criptionPo licy).%New ()
  1743                Se t subscrip tion.Recip ientType      = "syst em"
  1744                Se t subscrip tion.Regis tryId         = sysDe fault
  1745                Se t subscrip tion.Name                = "OnDe mand Patie nt C32"
  1746                Se t subscrip tion.Subsc riptionBas is = "A"   //All
  1747                Se t subscrip tion.Deliv eryPolicy     = polOn Demand
  1748                Se t subscrip tion.Trans formation     = txPat ientC32
  1749                Se t subscrip tion.Subje ct            = "Pati ent Summar y"
  1750                Se t subscrip tion.Effec tiveDate      = +$H
  1751                Se t subscrip tion.Expir ationDate     = ""
  1752                Se t subPatie nt = $$add Subscripti on(subscri ption)
  1753       
  1754                Se t subscrip tion = ##c lass(HS.Pu sh.WebServ ices.Conta iners.Subs criptionPo licy).%New ()
  1755                Se t subscrip tion.Recip ientType      = "syst em"
  1756                Se t subscrip tion.Regis tryId         = sysDe fault
  1757                Se t subscrip tion.Name                = "OnDe mand Encou nter Summa ry"
  1758                Se t subscrip tion.Subsc riptionBas is = "I"   //Info Typ e
  1759                Se t subscrip tion.Deliv eryPolicy     = polOn Demand
  1760                Se t subscrip tion.Trans formation     = txEnc ounter
  1761                Se t subscrip tion.Subje ct            = "Enco unter Summ ary"
  1762                Se t subscrip tion.Effec tiveDate      = +$H
  1763                Se t subscrip tion.Expir ationDate     = ""
  1764                Se t subEncou nter = $$a ddSubscrip tion(subsc ription)
  1765                Do  addSearch Terms(subE ncounter,s ubscriptio n.Subscrip tionBasis, $LB("ENC") )
  1766       
  1767                Se t subscrip tion = ##c lass(HS.Pu sh.WebServ ices.Conta iners.Subs criptionPo licy).%New ()
  1768                Se t subscrip tion.Recip ientType      = "syst em"
  1769                Se t subscrip tion.Regis tryId         = sysDe fault
  1770                Se t subscrip tion.Name                = "OnDe mand Unstr uctured Do cument"
  1771                Se t subscrip tion.Subsc riptionBas is = "I"   //Info Typ e
  1772                Se t subscrip tion.Deliv eryPolicy     = polOn Demand
  1773                Se t subscrip tion.Trans formation     = txDoc ument
  1774                Se t subscrip tion.Subje ct            = "Unst ructured D ocument"
  1775                Se t subscrip tion.Effec tiveDate      = +$H
  1776                Se t subscrip tion.Expir ationDate     = ""
  1777                Se t subDocum ent = $$ad dSubscript ion(subscr iption)
  1778                Do  addSearch Terms(subD ocument,su bscription .Subscript ionBasis,$ LB("DOC.CP ","DOC.CR" ,"DOC.DS", "DOC.HP"," DOC.LR","D OC.PN","DO C.RA","DOC .SR","DOC. PROGRESS N OTE"))
  1779                
  1780                
  1781                If  $$$WriteP rog Write  !,"HS.Loca l.VA.HS.Ac cess.CDA.S etup:Deliv ery - succ ess"
  1782                Qu it
  1783                
  1784        addTransfo rm(transfo rm)
  1785                If  $$$WriteP rog Write  !,?8,trans form.Name
  1786                $$ $ThrowOnEr ror(##clas s(HS.Util. HubService s).InvokeH ubService( "HS.Push.W ebServices ","HS.Push .WebServic esClient", "AddEditTr ansformati on",.respo nse,transf orm))
  1787                $$ $ThrowOnEr ror(respon se.Status)
  1788                Qu it respons e.ID
  1789        addOption( option)
  1790                If  $$$WriteP rog Write  !,?8,optio n.Name
  1791                $$ $ThrowOnEr ror(##clas s(HS.Util. HubService s).InvokeH ubService( "HS.Push.W ebServices ","HS.Push .WebServic esClient", "AddEditDe liveryOpti on",.respo nse,option ))
  1792                $$ $ThrowOnEr ror(respon se.Status)
  1793                Qu it respons e.ID
  1794        addSystem( system)
  1795                If  $$$WriteP rog Write  !,?8,syste m.Name
  1796                $$ $ThrowOnEr ror(##clas s(HS.Util. HubService s).InvokeH ubService( "HS.Push.W ebServices ","HS.Push .WebServic esClient", "AddEditRe ceivingSys tem",.resp onse,syste m))
  1797                $$ $ThrowOnEr ror(respon se.Status)
  1798                Qu it respons e.ID
  1799        addPolicy( policy)
  1800                If  $$$WriteP rog Write  !,?12,"Del ivery Poli cy: ",poli cy.Name
  1801                $$ $ThrowOnEr ror(##clas s(HS.Util. HubService s).InvokeH ubService( "HS.Push.W ebServices ","HS.Push .WebServic esClient", "AddEditDe liveryPoli cy",.respo nse,policy ))
  1802                $$ $ThrowOnEr ror(respon se.Status)
  1803                Qu it respons e.ID
  1804        addSubscri ption(subs cription)
  1805                If  $$$WriteP rog Write  !,?12,"Sub scription:  ",subscri ption.Name
  1806                $$ $ThrowOnEr ror(##clas s(HS.Util. HubService s).InvokeH ubService( "HS.Push.W ebServices ","HS.Push .WebServic esClient", "AddEditSu bscription Policy",.r esponse,su bscription ))
  1807                $$ $ThrowOnEr ror(respon se.Status)
  1808                Qu it respons e.ID
  1809        addSearchT erms(polic y,basis,li st)
  1810                Se t terms =  ##class(HS .Push.WebS ervices.Co ntainers.L istTermIte ms).%New()
  1811                Se t terms.Po licyId           = po licy
  1812                Se t terms.Su bscription Basis = "I "
  1813                Fo r i=1:1:$L L(list) {
  1814                         Do t erms.Terms .Insert($L I(list,i))
  1815                         If $ $$WritePro g Write !, ?16,"Term:  ",$LI(lis t,i)
  1816                }
  1817                $$ $ThrowOnEr ror(##clas s(HS.Util. HubService s).InvokeH ubService( "HS.Push.W ebServices ","HS.Push .WebServic esClient", "AddEditSe archTerms" ,.sc,terms ))
  1818                $$ $ThrowOnEr ror(sc)
  1819                Qu it
  1820        ]]>
  1821       </Implemen tation>
  1822      </Method>
  1823     
  1824      <Method 
  1825       name="getG atewayIDRe try"
  1826      >
  1827       <Descripti on>
  1828        convert na mespace in to HS.Gate way.Config  ID
  1829       </Descript ion>
  1830       <ClassMeth od>
  1831        1
  1832       </ClassMet hod>
  1833       <FormalSpe c>
  1834        namespace: %String, h angTime:%I nteger, ti meOut:%Int eger
  1835       </FormalSp ec>
  1836       <ReturnTyp e>
  1837        %String
  1838       </ReturnTy pe>
  1839       <Implement ation>
  1840        <![CDATA[
  1841                Se t ret = ""
  1842            Set cn t = 0
  1843            Set sc e = ""
  1844            For {
  1845                tr y {
  1846                     If $$$Wr iteProg Wr ite !,?8," Getting "_ namespace_ " ["_hangT ime_"s ("_ cnt_"s/"_t imeOut_"s) ]"
  1847                     Set ret  = ..getGat ewayID(nam espace)
  1848                     Return:r et ret
  1849                }  catch sc {
  1850                     Set sce  = sc
  1851                }
  1852                If  $$$WriteP rog Write  !,?8,"Gate way "_name space_" no t register ed yet, wa iting "_ha ngTime_"s  ("_cnt_"s/ "_timeOut_ "s)"
  1853                Ha ng hangTim e
  1854                Se t cnt = cn t + hangTi me
  1855                If  cnt > tim eOut {
  1856                     If sce
  1857                     {
  1858                         Thro w sce
  1859                     } Else {
  1860                         Thro w
  1861                     }
  1862                }
  1863            }
  1864            Return  ret
  1865        ]]>
  1866       </Implemen tation>
  1867      </Method>
  1868     
  1869      <Method 
  1870       name="getG atewayID"
  1871      >
  1872       <Descripti on>
  1873        convert na mespace in to HS.Gate way.Config  ID
  1874       </Descript ion>
  1875       <ClassMeth od>
  1876        1
  1877       </ClassMet hod>
  1878       <FormalSpe c>
  1879        namespace: %String
  1880       </FormalSp ec>
  1881       <ReturnTyp e>
  1882        %String
  1883       </ReturnTy pe>
  1884       <Implement ation>
  1885        <![CDATA[
  1886                Se t pattern  = "%:"_nam espace
  1887                Se t rs = ##c lass(%SQL. Statement) .%ExecDire ct(,"SELEC T ID,Name  From HS_Ga teway.Conf ig WHERE N ame LIKE ? ",pattern)
  1888                If  rs.%Next( ) Quit rs. ID
  1889                $$ $ThrowStat us($$$ERRO R(5001,"Ga teway not  found: "_n amespace))
  1890        ]]>
  1891       </Implemen tation>
  1892      </Method>
  1893     
  1894      <Method 
  1895       name="getS erviceID"
  1896      >
  1897       <Descripti on>
  1898        convert se rvice indo  HS.Regist ry.Service .SOAP ID
  1899       </Descript ion>
  1900       <ClassMeth od>
  1901        1
  1902       </ClassMet hod>
  1903       <FormalSpe c>
  1904        serviceNam e
  1905       </FormalSp ec>
  1906       <ReturnTyp e>
  1907        %String
  1908       </ReturnTy pe>
  1909       <Implement ation>
  1910        <![CDATA[        Quit  ##class(H S.Registry .Service.S OAP).IDFor NameType(s erviceName ,"SOAP")
  1911        ]]>
  1912       </Implemen tation>
  1913      </Method>
  1914     
  1915      <Method 
  1916       name="SetD efaultSett ings"
  1917      >
  1918       <ClassMeth od>
  1919        1
  1920       </ClassMet hod>
  1921       <FormalSpe c>
  1922        pLocalPath :%String=" ",pEnviron ment:%Stri ng="DEV",p Version:%S tring=""
  1923       </FormalSp ec>
  1924       <Implement ation>
  1925        <![CDATA[
  1926                //  Apply the
  1927                Se t tSC = .. GetDefault sByEnv(pEn vironment,  .tDefs)
  1928                Do  ..SetSett ings("HS.L ocal.VA.HS .Access.CD A.Setup||C ommonDefau ltSettings "_pVersion
  1929                Do  ..SetSett ings("HS.L ocal.VA.HS .Access.CD A.Setup||" _pEnvironm ent_"Defau ltSettings "_pVersion )
  1930        ]]>
  1931       </Implemen tation>
  1932      </Method>
  1933     
  1934      <Method 
  1935       name="SetS ettings"
  1936      >
  1937       <ClassMeth od>
  1938        1
  1939       </ClassMet hod>
  1940       <FormalSpe c>
  1941        pSettings
  1942       </FormalSp ec>
  1943       <Implement ation>
  1944        <![CDATA[
  1945                Se t compiled Xdata=##cl ass(%Dicti onary.Comp iledXData) .%OpenId(p Settings)
  1946                Se t tStream= compiledXd ata.Data
  1947                Se t tSC=##cl ass(Ens.Co nfig.Defau ltSettings ).%Import( tStream)
  1948        ]]>
  1949       </Implemen tation>
  1950      </Method>
  1951     
  1952      <XData 
  1953       name="Comm onDefaultS ettings"
  1954      >
  1955       <Data>
  1956        <![CDATA[
  1957        <defaultSe ttings>
  1958                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "" setting ="RequireV alidSAMLTo ken" value ="0"><Depl oyable>fal se</Deploy able></ite m>
  1959       
  1960                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.Hub.HS WS.WebServ ices" sett ing="XDSbR egistryTar get" value ="VA.HS.IH E.XDSb.Reg istry.Oper ations"><D eployable> false</Dep loyable></ item>
  1961                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.Hub.HS WS.WebServ ices" sett ing="Resou rceRequire d" value=" %HS_WebSer vices"><De ployable>f alse</Depl oyable></i tem>
  1962       
  1963                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.PD Qv3.Suppli er.Service s" setting ="PDQv3Can celTarget"  value="HS .IHE.PDQ.S upplier.Pr ocess"><De ployable>f alse</Depl oyable></i tem>
  1964                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.PD Qv3.Suppli er.Service s" setting ="PDQv3Con tinueTarge t" value=" HS.IHE.PDQ .Supplier. Process">< Deployable >false</De ployable>< /item>
  1965                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.PD Qv3.Suppli er.Service s" setting ="PDQv3Que ryTarget"  value="HS. IHE.PDQ.Su pplier.Pro cess"><Dep loyable>fa lse</Deplo yable></it em>
  1966       
  1967                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.PI Xv3.Consum er.Service s" setting ="PIXv3Rev iseTarget"  value="HS .IHE.PIX.C onsumer.Pr ocess"><De ployable>f alse</Depl oyable></i tem>
  1968       
  1969                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.PI Xv3.Manage r.Services " setting= "PIXv3AddT arget" val ue="HS.IHE .PIX.Manag er.Process "><Deploya ble>false< /Deployabl e></item>
  1970                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.PI Xv3.Manage r.Services " setting= "PIXv3Merg eTarget" v alue="HS.I HE.PIX.Man ager.Proce ss"><Deplo yable>fals e</Deploya ble></item >
  1971                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.PI Xv3.Manage r.Services " setting= "PIXv3Quer yTarget" v alue="HS.I HE.PIX.Man ager.Proce ss"><Deplo yable>fals e</Deploya ble></item >
  1972                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.PI Xv3.Manage r.Services " setting= "PIXv3Revi seTarget"  value="HS. IHE.PIX.Ma nager.Proc ess"><Depl oyable>fal se</Deploy able></ite m>
  1973       
  1974                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.XD Sb.Registr y.Services " setting= "XDSbQuery Target" va lue="VA.HS .IHE.XDSb. Registry.O perations" ><Deployab le>false</ Deployable ></item>
  1975                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.XD Sb.Registr y.Services " setting= "XDSbRegis terTarget"  value="VA .HS.IHE.XD Sb.Registr y.Operatio ns"><Deplo yable>fals e</Deploya ble></item >
  1976                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.XD Sb.Registr y.Services " setting= "XDSbRegis terOnDeman dTarget" v alue="VA.H S.IHE.XDSb .Registry. Operations "><Deploya ble>false< /Deployabl e></item>
  1977                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.XD Sb.Registr y.Services " setting= "XDSbUpdat eDocumentS etTarget"  value="VA. HS.IHE.XDS b.Registry .Operation s"><Deploy able>false </Deployab le></item>
  1978                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.XD Sb.Registr y.Services " setting= "XDSbDelet eDocumentS etTarget"  value="VA. HS.IHE.XDS b.Registry .Operation s"><Deploy able>false </Deployab le></item>
  1979                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.XD Sb.Registr y.Services " setting= "PIXv3Mana gerTarget"  value="HS .IHE.PIX.M anager.Pro cess"><Dep loyable>fa lse</Deplo yable></it em>
  1980       
  1981                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.HS.IHE .PIXv2.Con sumer.Serv ices" sett ing="Targe tConfigNam es" value= "VA.HS.IHE .PIX.Consu mer.Proces s"><Deploy able>false </Deployab le></item>
  1982                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.HS.IHE .PIXv2.Con sumer.Serv ices" sett ing="Messa geSchemaCa tegory" va lue="VA.MV I.2.5"><De ployable>f alse</Depl oyable></i tem>
  1983                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.HS.IHE .PIXv2.Con sumer.Serv ices" sett ing="Local FacilityAp plication"  value="@: @"><Deploy able>false </Deployab le></item>
  1984                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.HS.IHE .PIXv2.Con sumer.Serv ices" sett ing="AckMo de" value= "Immediate "><Deploya ble>false< /Deployabl e></item>
  1985       
  1986                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.PI X.Consumer .Process"  setting="N otifyOther s" value=" HS.IHE.XDS b.Registry .Operation s,HS.IHE.X DSb.Push.M ergeOperat ions"><Dep loyable>fa lse</Deplo yable></it em>
  1987       
  1988                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.PI X.Manager. Process" s etting="De viceID" va lue="PIXv3 ManagerDev ice"><Depl oyable>fal se</Deploy able></ite m>
  1989       
  1990                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.HS.IHE .PIX.Consu mer.Proces s" setting ="PoolSize " value="1 "><Deploya ble>false< /Deployabl e></item>
  1991                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.HS.IHE .PIX.Consu mer.Proces s" setting ="PartnerO peration"  value="VA. MVI.ACK.Op eration">< Deployable >false</De ployable>< /item>
  1992                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.HS.IHE .PIX.Consu mer.Proces s" setting ="VAStatio n" value=" 200HSEP">< Deployable >false</De ployable>< /item>
  1993                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.HS.IHE .PIX.Consu mer.Proces s" setting ="HL7Proce ssingID" v alue="T">< Deployable >false</De ployable>< /item>
  1994       
  1995                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "GATEWAY"  setting="S OAPCredent ials" valu e="HS_Serv ices"><Dep loyable>fa lse</Deplo yable></it em>
  1996       
  1997                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.Hub.Ma nagement.O perations"  setting=" PoolSize"  value="1"> <Deployabl e>false</D eployable> </item>
  1998                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.Hub.Ma nagement.O perations"  setting=" AllowDynam icGatewayR egistratio n" value=" 1"><Deploy able>false </Deployab le></item>
  1999       
  2000                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.Hub.MP I.Manager"  setting=" PoolSize"  value="1"> <Deployabl e>false</D eployable> </item>
  2001                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.Hub.MP I.Manager"  setting=" MPIOperati ons" value =""><Deplo yable>fals e</Deploya ble></item >
  2002                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.Hub.MP I.Manager"  setting=" MatchMode"  value="An y"><Deploy able>false </Deployab le></item>
  2003                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.Hub.MP I.Manager"  setting=" ConsentPro cesor" val ue="HS.Con sent.MPIEn gine"><Dep loyable>fa lse</Deplo yable></it em>
  2004                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.Hub.MP I.Manager"  setting=" DynamicFac ilityRegis tration" v alue="1">< Deployable >false</De ployable>< /item>
  2005                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.Hub.MP I.Manager"  setting=" PIXManager " value="H S.IHE.PIX. Manager.Pr ocess"><De ployable>f alse</Depl oyable></i tem>
  2006                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.Hub.MP I.Manager"  setting=" Identifier Compatibil ityMode" v alue="0">< Deployable >false</De ployable>< /item>
  2007       
  2008                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.Hub.Pu sh.EmailSa mpleOperat ion" setti ng="Creden tials" val ue="SENDER "><Deploya ble>false< /Deployabl e></item>
  2009       
  2010                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.Hub.Pu sh.Evaluat or" settin g="XDSbOnD emandTarge t" value=" VA.HS.IHE. XDSb.OnDem and.Operat ions"><Dep loyable>fa lse</Deplo yable></it em>
  2011       
  2012                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.PD Qv3.Consum er.Operati ons" setti ng="Device " value="P DQv3Consum erDevice"> <Deployabl e>false</D eployable> </item>
  2013                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.PD Qv3.Consum er.Operati ons" setti ng="Servic eName" val ue="PDQv3. Supplier"> <Deployabl e>false</D eployable> </item>
  2014                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.PD Qv3.Consum er.Operati ons" setti ng="PoolSi ze" value= "1"><Deplo yable>fals e</Deploya ble></item >
  2015       
  2016                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.PI Xv3.Consum er.Operati ons" setti ng="Device " value="P IXv3Consum erDevice"> <Deployabl e>false</D eployable> </item>
  2017                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.PI Xv3.Consum er.Operati ons" setti ng="Servic eName" val ue="PIXv3. Supplier"> <Deployabl e>false</D eployable> </item>
  2018                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.PI Xv3.Consum er.Operati ons" setti ng="PoolSi ze" value= "1"><Deplo yable>fals e</Deploya ble></item >
  2019       
  2020                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.PI Xv3.Source .Operation s" setting ="Device"  value="PIX v3SourceDe vice"><Dep loyable>fa lse</Deplo yable></it em>
  2021                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.PI Xv3.Source .Operation s" setting ="ServiceN ame" value ="PIXv3.Ma nager"><De ployable>f alse</Depl oyable></i tem>
  2022                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.PI Xv3.Source .Operation s" setting ="PoolSize " value="1 "><Deploya ble>false< /Deployabl e></item>
  2023       
  2024                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.XD Sb.Consent .Operation s" setting ="DefaultF acility" v alue="Home Community" ><Deployab le>false</ Deployable ></item>
  2025                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.XD Sb.Consent .Operation s" setting ="PoolSize " value="1 "><Deploya ble>false< /Deployabl e></item>
  2026       
  2027                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.XD Sb.Push.Me rgeOperati ons" setti ng="PoolSi ze" value= "1"><Deplo yable>fals e</Deploya ble></item >
  2028       
  2029                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.XD Sb.Push.Re gisterPost Processor"  setting=" PoolSize"  value="1"> <Deployabl e>false</D eployable> </item>
  2030       
  2031                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.IHE.XD Sb.Registr y.Operatio ns" settin g="Enabled " value="0 "><Deploya ble>false< /Deployabl e></item>
  2032       
  2033                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.ESR.Op erations"  setting="S OAPCredent ials" valu e=""><Depl oyable>fal se</Deploy able></ite m>
  2034                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.ESR.Op erations"  setting="C redentials " value="" ><Deployab le>false</ Deployable ></item>
  2035                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.ESR.Op erations"  setting="S erviceName " value="V A.ESR"><De ployable>f alse</Depl oyable></i tem>
  2036                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.ESR.Op erations"  setting="P oolSize" v alue="1">< Deployable >false</De ployable>< /item>
  2037       
  2038                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.HS.IHE .XDSb.Regi stry.Opera tions" set ting="XDSb QueryConse ntTarget"  value="HS. IHE.XDSb.C onsent.Ope rations">< Deployable >false</De ployable>< /item>
  2039                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.HS.IHE .XDSb.Regi stry.Opera tions" set ting="Regi sterPostPr ocessor" v alue="HS.I HE.XDSb.Pu sh.Registe rPostProce ssor"><Dep loyable>fa lse</Deplo yable></it em>
  2040       
  2041                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.IHE.XD Sb.OnDeman d.Operatio ns" settin g="Registr yTarget" v alue="VA.H S.IHE.XDSb .Registry. Operations "><Deploya ble>false< /Deployabl e></item>
  2042                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.IHE.XD Sb.OnDeman d.Operatio ns" settin g="IssueOn DemandRepl acements"  value="1"> <Deployabl e>false</D eployable> </item>
  2043       
  2044                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.MVI.AC K.Operatio n" setting ="External RegistryID " value="" ><Deployab le>false</ Deployable ></item>
  2045                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.MVI.AC K.Operatio n" setting ="Separato rs" value= "^~|\&amp; "><Deploya ble>false< /Deployabl e></item>
  2046                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.MVI.AC K.Operatio n" setting ="PoolSize " value="1 "><Deploya ble>false< /Deployabl e></item>
  2047       
  2048                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.MVI.Op erations"  setting="P atientSear ch" value= "VA.MVI.PD Qv3.Consum er.Operati ons"><Depl oyable>fal se</Deploy able></ite m>
  2049                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.MVI.Op erations"  setting="R egisterInt erest" val ue="VA.MVI .PDQv3.Con sumer.Oper ations.DFN "><Deploya ble>false< /Deployabl e></item>
  2050                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.MVI.Op erations"  setting="U seFacility AsDefaultA A" value=" 1"><Deploy able>false </Deployab le></item>
  2051                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.MVI.Op erations"  setting="P ooSize" va lue="1"><D eployable> false</Dep loyable></ item>
  2052       
  2053                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.MVI.PD Qv3.Consum er.Operati ons" setti ng="Device " value="2 00HSEP"><D eployable> false</Dep loyable></ item>
  2054                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.MVI.PD Qv3.Consum er.Operati ons" setti ng="Servic eName" val ue="MVI.PD Qv3.Consum er"><Deplo yable>fals e</Deploya ble></item >
  2055                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.MVI.PD Qv3.Consum er.Operati ons" setti ng="Transf ormPatient SearchToPD Q" value=" IHE/PDQ/Ve rsion1/Cus tom/vaPati entSearchT oPRPAIN201 305UV.xsl" ><Deployab le>false</ Deployable ></item>
  2056                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.MVI.PD Qv3.Consum er.Operati ons" setti ng="Transf ormPDQToPa tientSearc h" value=" IHE/PDQ/Ve rsion1/Cus tom/vaPRPA IN201306UV ToPatientS earchRespo nse.xsl">< Deployable >false</De ployable>< /item>
  2057                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.MVI.PD Qv3.Consum er.Operati ons" setti ng="PoolSi ze" value= "1"><Deplo yable>fals e</Deploya ble></item >
  2058       
  2059                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.MVI.PD Qv3.Consum er.Operati ons.DFN" s etting="De vice" valu e="200HSEP "><Deploya ble>false< /Deployabl e></item>
  2060                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.MVI.PD Qv3.Consum er.Operati ons.DFN" s etting="Se rviceName"  value="MV I.PDQv3.Co nsumer"><D eployable> false</Dep loyable></ item>
  2061                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.MVI.PD Qv3.Consum er.Operati ons.DFN" s etting="Po olSize" va lue="1"><D eployable> false</Dep loyable></ item>
  2062         </default Settings>
  2063        ]]>
  2064       </Data>
  2065      </XData>
  2066     
  2067      <XData 
  2068       name="DEVD efaultSett ings"
  2069      >
  2070       <Data>
  2071        <![CDATA[
  2072        <defaultSe ttings>
  2073                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.Hub.Pu sh.EmailSa mpleOperat ion" setti ng="SMTPSe rver" valu e="mail.is cinternal. com"><Depl oyable>fal se</Deploy able></ite m>
  2074       
  2075                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.HS.IHE .PIXv2.Con sumer.Serv ices" sett ing="Port"  value="70 15"><Deplo yable>fals e</Deploya ble></item >
  2076       
  2077                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.MVI.AC K.Operatio n" setting ="IPAddres s" value=" ecptest-de v. DNS             "><Deploya ble>false< /Deployabl e></item>
  2078                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "VA.MVI.AC K.Operatio n" setting ="Port" va lue="5014" ><Deployab le>false</ Deployable ></item>
  2079       
  2080                </ defaultSet tings>
  2081        ]]>
  2082       </Data>
  2083      </XData>
  2084     
  2085      <XData 
  2086       name="DEVL ocalDefaul tSettings"
  2087      >
  2088       <Data>
  2089        <![CDATA[
  2090        <defaultSe ttings>
  2091                <i tem produc tion="HSRE GISTRYPKG. HubProduct ion" class ="*" item= "HS.Hub.Pu sh.EmailSa mpleOperat ion" setti ng="SMTPSe rver" valu e="localho st"><Deplo yable>fals e</Deploya ble></item >
  2092        </defaultS ettings>
  2093        ]]>
  2094       </Data>
  2095      </XData>
  2096     
  2097      <XData 
  2098       name="SQAD efaultSett ings"
  2099      >
  2100       <Data>
  2101        <![CDATA[
  2102        <defaultSe ttings>
  2103       
  2104                </ defaultSet tings>
  2105        ]]>
  2106       </Data>
  2107      </XData>
  2108     
  2109      <XData 
  2110       name="PreP RODDefault Settings"
  2111      >
  2112       <Data>
  2113        <![CDATA[
  2114        <defaultSe ttings>
  2115       
  2116                </ defaultSet tings>
  2117        ]]>
  2118       </Data>
  2119      </XData>
  2120     
  2121      <XData 
  2122       name="PROD DefaultSet tings"
  2123      >
  2124       <Data>
  2125        <![CDATA[
  2126        <defaultSe ttings>
  2127       
  2128                </ defaultSet tings>
  2129        ]]>
  2130       </Data>
  2131      </XData>
  2132     </Class>
  2133    
  2134    
  2135   </Export>