HMPWBIM1 ;;OB/JD/CNP - Write back entry points for IMMUNIZATIONS (related to Notes, and Encounters);Sep 2, 2015@08:31:16
 ;;2.0;ENTERPRISE HEALTH MANAGEMENT PLATFORM;**2**;Sep 01, 2011;Build 28
 ;Per VA Directive 6402, this routine should not be modified.
 ;
 Q
 ;
IMMUN(RSLT,IEN,DFN,DATA)   ; Immunization
 ;
 ;RPC: HMP WRITEBACK IMMUNIZATION
 ;Output
 ; RSLT = JSON format string for Immunization
 ;Input
 ; IEN  = record to be updated
 ; DFN  = patient IEN
 ; DATA - input format - string
 ;   Piece 1: DFN - Patient IEN
 ;   Piece 2: Inpatient flag - 1 = inpatient, 0 = otherwise
 ;   Piece 3: Hospital location IEN
 ;   Piece 4: Visit/episode date
 ;   Piece 5: Service category
 ;   Piece 6: Author/dictator IEN (i.e. Provider)
 ;   Piece 7: (IMM)unization/Encounter type - A 2- or 3-character string as follows:
 ;               CPT for CPT (^AUPNVCPT; #9000010.18)
 ;               HF      Health Factor (^AUPNVHF; #9000010.23)
 ;               IMM     Immunization (^AUPNVIMM; #9000010.11)
 ;               PED     Patient Education (^AUPNVPED; #9000010.16)
 ;               POV     POV - Purpose of Visit; a.k.a Diagnosis - (^AUPNVPOV; #9000010.07)
 ;               SK      Skin (^AUPNVSK; #9000010.12)
 ;               XAM     Exam (^AUPNVXAM; #9000010.13)
 ;   Piece 8: (IMM)unization/Encounter ID - As follows:
 ;               CPT     ^ICPT
 ;               HF      ^AUTTHF
 ;               IMM     ^AUTTIMM
 ;               PED     ^AUTTEDT
 ;               POV     ^ICD9
 ;               SK      ^AUTTSK
 ;               XAM     ^AUTTEXAM
 ;   Piece 9: Immunization /Encounter result CODE
 ;  Piece 10: Immunization /Encounter comment number
 ;  Piece 11: Immunization /Encounter comment text
 ;  Piece 12: Reaction
 ;  Piece 13: Repeat ContraIndicated
 ;
 N ERRMSG,JSONERR
 I '$G(DFN) D MSG^HMPTOOLS("DFN",1) D ERR(.RSLT) Q  ; DFN is required
 N ADMNDATE,ENC,ENCNM,ENCNUM,ENCTL,ENCTYP,ENCGLB,ERROR,GLB,HMP,HMPA,HMPFCNT,HMPE
 N HMPUID,INFO,LOCALID,LOCALIEN,NOTE,NOTEIEN,OK,ORLOC,PCELIST,PRVNM,STMPTM
 S INFO=$G(DATA)
 ;
 ;Check for required fields
 ;
 I '$P(INFO,U) D MSG^HMPTOOLS("DFN",1) D ERR(.RSLT) Q  ; DFN is required
 I $D(^DPT($P(INFO,U)))'>0 D MSG^HMPTOOLS("DFN",2,$P(INFO,U)) D ERR(.RSLT) Q  ; Invalid DFN
 I '$P(INFO,U,3) D MSG^HMPTOOLS("Location",1) D ERR(.RSLT) Q  ; Location is required
 I '$P(INFO,U,4) D MSG^HMPTOOLS("Visit",1) D ERR(.RSLT) Q  ; Visit is required
 I $L($P(INFO,U,5))=0 D MSG^HMPTOOLS("Service category",1) D ERR(.RSLT) Q  ; Service category is required
 I $L($P(INFO,U,7))=0 D MSG^HMPTOOLS("Immunization Encounter type",1) D ERR(.RSLT) Q  ; Immunization /Encounter type is required
 ;
 S DFN=$P(INFO,U),OK="",NOTEIEN=0,ORLOC=$P(INFO,U,3)
 S ENCTYP=$$UP^XLFSTR($P(INFO,U,7))
 S ENCNUM=$P(INFO,U,8)  ; Immunization Code (Number)
 S ENCGLB=$S(ENCTYP="CPT":"^ICPT",ENCTYP="POV":"^ICD9",1:"MORE")
 I ENCGLB="MORE" S ENCGLB=$S(ENCTYP="PED":"^AUTTEDT",ENCTYP="XAM":"^AUTTEXAM",1:"MORE")
 I ENCGLB="MORE" S ENCGLB="^AUTT"_ENCTYP
 I $D(@ENCGLB)'>0 D MSG^HMPTOOLS("Immunization Encounter typ",2,ENCTYP) D ERR(.RSLT) Q  ; Invalid Immunization /encounter type
 S ENCNM=$P($G(@ENCGLB@($P(INFO,U,8),0)),U)  ; Immunization /Encounter name
 S PRVNM=$P($G(^VA(200,$P(INFO,U,6),0)),U)   ; Provider name
 ;
 ;Prepare the Immunization /encounter array for the RPC
 ;
 S PCELIST(1)="HDR^"_$P(INFO,U,2)_"^^"_$P(INFO,U,3)_";"_(+$P(INFO,U,4))_";"_$P(INFO,U,5)
 S PCELIST(2)="VST^DT^"_(+$P(INFO,U,4))
 S PCELIST(3)="VST^PT^"_$P(INFO,U)
 S PCELIST(4)="VST^HL^"_$P(INFO,U,3)
 S PCELIST(5)="VST^VC^"_$P(INFO,U,5)
 S PCELIST(6)="PRV^"_$P(INFO,U,6)_"^^^"_PRVNM_"^1"
 S PCELIST(7)=ENCTYP_"+^"_$P(INFO,U,8)_"^^"_ENCNM_U_$P(INFO,U,9)_U_$P(INFO,U,6)_U_$P(INFO,U,12)_U_$P(INFO,U,13)_"^0^"
 S PCELIST(7)=PCELIST(7)_$P(INFO,U,10)
 S PCELIST(8)="COM^"_$P(INFO,U,10)_U_$S($P(INFO,U,11)]"":$P(INFO,U,11),1:"@")
 ;
 ;Invoke the already existing RPC (ORWPCE1 DQSAVE)
 ;
 ; Wrap for ORWPCE1 DQSAVE
 ; Description:  This RPC saves immunizations
 ;
 ; Input:   Parameters are as noted above for this routine, IMMUN^HMPWBIM1.
 ;
 ; Output:  Immunization parameters for the DQSAVE^ORWPCE1 Broker Call
 ;
 ;          DFN^IEN^HospitalLocation^VisitDate^Service category^Provider^ImmunizationType^IMM^ImmunizationResultCODE^ImmunizationCommentNumber^ImmunizationCommentText
 ;          Note: IMM     Immunization (^AUPNVIMM; #9000010.11) and ^AUTTIMM
 ;
 ; Check for duplicates and send a JSON error message if a duplicate IMMUNIZATION is found
 S ADMNDATE=+$P(INFO,U,4)
 S ERROR=0
 S LOCALID="" F  S LOCALID=$O(^AUPNVSIT("B",ADMNDATE,LOCALID)) Q:LOCALID=""  D
 .S LOCALIEN="" F  S LOCALIEN=$O(^AUPNVIMM("AD",LOCALID,LOCALIEN)) Q:LOCALIEN=""  I $D(^AUPNVIMM(LOCALIEN,0)) I $P(^AUPNVIMM(LOCALIEN,0),"^")=ENCNUM I $P(^AUPNVIMM(LOCALIEN,0),"^",2)=DFN S ERROR=1
 I ERROR D MSG^HMPTOOLS("Entry: Immunization already exist for the specified Date and Time for ",2,$P(INFO,U)) D ERR(.RSLT) Q  ;
 ;
 ; Save/Write IMMUNIZATION to VistA
 D DQSAVE^ORWPCE1
 ;
 ; Match DFN with the VISIT
 S (VISIT,LOCALID)="" F  S LOCALID=$O(^AUPNVSIT("B",ADMNDATE,LOCALID)) Q:LOCALID=""  D
 .S VISIT=LOCALID S LOCALIEN="" F  S LOCALIEN=$O(^AUPNVIMM("AD",LOCALID,LOCALIEN)) Q:LOCALIEN=""  I $D(^AUPNVIMM(LOCALIEN,0)) I $P(^AUPNVIMM(LOCALIEN,0),"^")=ENCNUM Q:$P(^AUPNVIMM(LOCALIEN,0),"^",2)=DFN
 I VISIT>0 D
 .K FILTER
 .S FILTER("noHead")=1
 .S FILTER("patientId")=DFN
 .S FILTER("domain")="visit"
 .S FILTER("id")=VISIT
 .D GET^HMPDJ(.HMP,.FILTER)   ; Return JSON visit Data
 .S NOTE=$O(^TIU(8925,"V",VISIT,""))
 .I NOTE>0 D
 ..K FILTER
 ..S FILTER("noHead")=1
 ..S FILTER("patientId")=DFN
 ..S FILTER("domain")="document"
 ..S FILTER("id")=OK   ; Return JSON document Data
 ..D GET^HMPDJ(.HMP,.FILTER)
 .S GLB="^AUPNV"_ENCTYP
 .S ENC=LOCALIEN  ;S ENC=$O(@GLB@("AD",VISIT,""))  ; replaced the code with LOCALIEN variable
 .I ENC>0 D   ; Get the full domain name so it matches the tags in HMPDJ0
 ..S ENCTL=$S(ENCTYP="CPT":"cpt",ENCTYP="HF":"factor",ENCTYP="IMM":"immuniza",1:"MORE")
 ..I ENCTL="MORE" S ENCTL=$S(ENCTYP="PED":"educatio",ENCTYP="POV":"pov",1:"MORE")
 ..I ENCTL="MORE" S ENCTL=$S(ENCTYP="SK":"skin",ENCTYP="XAM":"exam",1:"")
 ..K FILTER
 ..S FILTER("noHead")=1
 ..S FILTER("patientId")=DFN
 ..S FILTER("domain")=ENCTL
 ..S FILTER("id")=ENC
 ..D GET^HMPDJ(.HMP,.FILTER)   ; Return JSON Immunization Data
 ..;; renmove this ;; line
 ..S HMPFCNT=0
 ..S HMPUID=$$SETUID^HMPUTILS(ENCTL,DFN,ENC)   ; Build Metastamp and Syncstatus
 ..S HMPE=$G(^TMP("HMP",$J,1,1))
 ..S STMPTM=$TR($P($P(HMPE,"stampTime",2),","),""":")
 ..D ADHOC^HMPUTIL2(ENCTL,HMPFCNT,DFN,HMPUID,STMPTM)   ; Removed METASTAMP and SYNCSTART /SYNCSTOP
 ..S RSLT=$$EXTRACT(HMP)
 ..K ^TMP("HMPIMM",$J)
 ..M ^TMP("HMPIMM",$J)=RSLT
 ..;M ^TMP("HMPIMM",$J)=^TMP("HMP",$J)
 ..K ^TMP("HMPIMM",$J,"total")   ;Stored JSON in HMP WRTIEBACK IMMUNIZATION temporary global for the job/user
 ..K RSLT
 ..S RSLT=$NA(^TMP("HMPIMM",$J))   ;Stored location of top level of HMP WRITEBACK JSON in Result variable
 Q
 ;
 N HMPSTOP,HMPFND,NULLCHK
 S RSLT="",X=0,HMPSTOP=0,HMPFND=0
 S (I,J)=0
 F  S I=$O(^TMP("HMPF",$J,I)) Q:I=""!(HMPSTOP)  D
 . F  S J=$O(^TMP("HMPF",$J,I,J)) Q:J=""  D
 .. I $G(^TMP("HMPF",$J,I,J))["syncStatus" D
 ... Q:$P(^TMP("HMPF",$J,I,J),":",1)["domainTotals"
 ... S RSLT(X)=RSLT(X)_$P(^TMP("HMPF",$J,I,J),",",1)
 ... S HMPSTOP=1
 ... Q
 .. Q:$D(^TMP("HMPF",$J))=""
 .. Q:$G(^TMP("HMPF",$J,I,J))=""
 .. Q:$P(^TMP("HMPF",$J,I,J),",",1)'["immuniza"
 .. Q:$P(^TMP("HMPF",$J,I,J),",",4)'["localId"
 .. Q:$P(^TMP("HMPF",$J,I,J),":",1)["domainTotals"
 .. S X=X+1
 .. S RSLT(X)=$G(^TMP("HMPF",$J,I,J))
 .. F  S J=$O(^TMP("HMPF",$J,I,J)) Q:J=""  D
 ... Q:$P(^TMP("HMPF",$J,I,J),":",1)["domainTotals"
 ... S X=X+1
 ... S RSLT(X)=$G(^TMP("HMPF",$J,I,J))
 ... S HMPFND=1
 ... Q
 .. S I=$O(^TMP("HMPF",$J,I))
 .. Q
 . Q
 Q RSLT
ERR(RSLT) ; Display Error
 K ^TMP("HMPIMM",$J)
 M ^TMP("HMPIMM",$J)=RSLT
 K ^TMP("HMPIMM",$J,"total")   ;Stored JSON in HMP WRTIEBACK IMMUNIZATION temporary global for the job/user
 K RSLT
 S RSLT=$NA(^TMP("HMPIMM",$J))   ;Stored location of top level of HMP WRITEBACK JSON in Result variable
 Q
 ;
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HHMPWBIM1   8298     printed  Sep 23, 2025@19:30:48                                                                                                                                                                                                    Page 2
HMPWBIM1  ;;OB/JD/CNP - Write back entry points for IMMUNIZATIONS (related to Notes, and Encounters);Sep 2, 2015@08:31:16
 +1       ;;2.0;ENTERPRISE HEALTH MANAGEMENT PLATFORM;**2**;Sep 01, 2011;Build 28
 +2       ;Per VA Directive 6402, this routine should not be modified.
 +3       ;
 +4        QUIT 
 +5       ;
IMMUN(RSLT,IEN,DFN,DATA) ; Immunization
 +1       ;
 +2       ;RPC: HMP WRITEBACK IMMUNIZATION
 +3       ;Output
 +4       ; RSLT = JSON format string for Immunization
 +5       ;Input
 +6       ; IEN  = record to be updated
 +7       ; DFN  = patient IEN
 +8       ; DATA - input format - string
 +9       ;   Piece 1: DFN - Patient IEN
 +10      ;   Piece 2: Inpatient flag - 1 = inpatient, 0 = otherwise
 +11      ;   Piece 3: Hospital location IEN
 +12      ;   Piece 4: Visit/episode date
 +13      ;   Piece 5: Service category
 +14      ;   Piece 6: Author/dictator IEN (i.e. Provider)
 +15      ;   Piece 7: (IMM)unization/Encounter type - A 2- or 3-character string as follows:
 +16      ;               CPT for CPT (^AUPNVCPT; #9000010.18)
 +17      ;               HF      Health Factor (^AUPNVHF; #9000010.23)
 +18      ;               IMM     Immunization (^AUPNVIMM; #9000010.11)
 +19      ;               PED     Patient Education (^AUPNVPED; #9000010.16)
 +20      ;               POV     POV - Purpose of Visit; a.k.a Diagnosis - (^AUPNVPOV; #9000010.07)
 +21      ;               SK      Skin (^AUPNVSK; #9000010.12)
 +22      ;               XAM     Exam (^AUPNVXAM; #9000010.13)
 +23      ;   Piece 8: (IMM)unization/Encounter ID - As follows:
 +24      ;               CPT     ^ICPT
 +25      ;               HF      ^AUTTHF
 +26      ;               IMM     ^AUTTIMM
 +27      ;               PED     ^AUTTEDT
 +28      ;               POV     ^ICD9
 +29      ;               SK      ^AUTTSK
 +30      ;               XAM     ^AUTTEXAM
 +31      ;   Piece 9: Immunization /Encounter result CODE
 +32      ;  Piece 10: Immunization /Encounter comment number
 +33      ;  Piece 11: Immunization /Encounter comment text
 +34      ;  Piece 12: Reaction
 +35      ;  Piece 13: Repeat ContraIndicated
 +36      ;
 +37       NEW ERRMSG,JSONERR
 +38      ; DFN is required
           IF '$GET(DFN)
               DO MSG^HMPTOOLS("DFN",1)
               DO ERR(.RSLT)
               QUIT 
 +39       NEW ADMNDATE,ENC,ENCNM,ENCNUM,ENCTL,ENCTYP,ENCGLB,ERROR,GLB,HMP,HMPA,HMPFCNT,HMPE
 +40       NEW HMPUID,INFO,LOCALID,LOCALIEN,NOTE,NOTEIEN,OK,ORLOC,PCELIST,PRVNM,STMPTM
 +41       SET INFO=$GET(DATA)
 +42      ;
 +43      ;Check for required fields
 +44      ;
 +45      ; DFN is required
           IF '$PIECE(INFO,U)
               DO MSG^HMPTOOLS("DFN",1)
               DO ERR(.RSLT)
               QUIT 
 +46      ; Invalid DFN
           IF $DATA(^DPT($PIECE(INFO,U)))'>0
               DO MSG^HMPTOOLS("DFN",2,$PIECE(INFO,U))
               DO ERR(.RSLT)
               QUIT 
 +47      ; Location is required
           IF '$PIECE(INFO,U,3)
               DO MSG^HMPTOOLS("Location",1)
               DO ERR(.RSLT)
               QUIT 
 +48      ; Visit is required
           IF '$PIECE(INFO,U,4)
               DO MSG^HMPTOOLS("Visit",1)
               DO ERR(.RSLT)
               QUIT 
 +49      ; Service category is required
           IF $LENGTH($PIECE(INFO,U,5))=0
               DO MSG^HMPTOOLS("Service category",1)
               DO ERR(.RSLT)
               QUIT 
 +50      ; Immunization /Encounter type is required
           IF $LENGTH($PIECE(INFO,U,7))=0
               DO MSG^HMPTOOLS("Immunization Encounter type",1)
               DO ERR(.RSLT)
               QUIT 
 +51      ;
 +52       SET DFN=$PIECE(INFO,U)
           SET OK=""
           SET NOTEIEN=0
           SET ORLOC=$PIECE(INFO,U,3)
 +53       SET ENCTYP=$$UP^XLFSTR($PIECE(INFO,U,7))
 +54      ; Immunization Code (Number)
           SET ENCNUM=$PIECE(INFO,U,8)
 +55       SET ENCGLB=$SELECT(ENCTYP="CPT":"^ICPT",ENCTYP="POV":"^ICD9",1:"MORE")
 +56       IF ENCGLB="MORE"
               SET ENCGLB=$SELECT(ENCTYP="PED":"^AUTTEDT",ENCTYP="XAM":"^AUTTEXAM",1:"MORE")
 +57       IF ENCGLB="MORE"
               SET ENCGLB="^AUTT"_ENCTYP
 +58      ; Invalid Immunization /encounter type
           IF $DATA(@ENCGLB)'>0
               DO MSG^HMPTOOLS("Immunization Encounter typ",2,ENCTYP)
               DO ERR(.RSLT)
               QUIT 
 +59      ; Immunization /Encounter name
           SET ENCNM=$PIECE($GET(@ENCGLB@($PIECE(INFO,U,8),0)),U)
 +60      ; Provider name
           SET PRVNM=$PIECE($GET(^VA(200,$PIECE(INFO,U,6),0)),U)
 +61      ;
 +62      ;Prepare the Immunization /encounter array for the RPC
 +63      ;
 +64       SET PCELIST(1)="HDR^"_$PIECE(INFO,U,2)_"^^"_$PIECE(INFO,U,3)_";"_(+$PIECE(INFO,U,4))_";"_$PIECE(INFO,U,5)
 +65       SET PCELIST(2)="VST^DT^"_(+$PIECE(INFO,U,4))
 +66       SET PCELIST(3)="VST^PT^"_$PIECE(INFO,U)
 +67       SET PCELIST(4)="VST^HL^"_$PIECE(INFO,U,3)
 +68       SET PCELIST(5)="VST^VC^"_$PIECE(INFO,U,5)
 +69       SET PCELIST(6)="PRV^"_$PIECE(INFO,U,6)_"^^^"_PRVNM_"^1"
 +70       SET PCELIST(7)=ENCTYP_"+^"_$PIECE(INFO,U,8)_"^^"_ENCNM_U_$PIECE(INFO,U,9)_U_$PIECE(INFO,U,6)_U_$PIECE(INFO,U,12)_U_$PIECE(INFO,U,13)_"^0^"
 +71       SET PCELIST(7)=PCELIST(7)_$PIECE(INFO,U,10)
 +72       SET PCELIST(8)="COM^"_$PIECE(INFO,U,10)_U_$SELECT($PIECE(INFO,U,11)]"":$PIECE(INFO,U,11),1:"@")
 +73      ;
 +74      ;Invoke the already existing RPC (ORWPCE1 DQSAVE)
 +75      ;
 +76      ; Wrap for ORWPCE1 DQSAVE
 +77      ; Description:  This RPC saves immunizations
 +78      ;
 +79      ; Input:   Parameters are as noted above for this routine, IMMUN^HMPWBIM1.
 +80      ;
 +81      ; Output:  Immunization parameters for the DQSAVE^ORWPCE1 Broker Call
 +82      ;
 +83      ;          DFN^IEN^HospitalLocation^VisitDate^Service category^Provider^ImmunizationType^IMM^ImmunizationResultCODE^ImmunizationCommentNumber^ImmunizationCommentText
 +84      ;          Note: IMM     Immunization (^AUPNVIMM; #9000010.11) and ^AUTTIMM
 +85      ;
 +86      ; Check for duplicates and send a JSON error message if a duplicate IMMUNIZATION is found
 +87       SET ADMNDATE=+$PIECE(INFO,U,4)
 +88       SET ERROR=0
 +89       SET LOCALID=""
           FOR 
               SET LOCALID=$ORDER(^AUPNVSIT("B",ADMNDATE,LOCALID))
               if LOCALID=""
                   QUIT 
               Begin DoDot:1
 +90               SET LOCALIEN=""
                   FOR 
                       SET LOCALIEN=$ORDER(^AUPNVIMM("AD",LOCALID,LOCALIEN))
                       if LOCALIEN=""
                           QUIT 
                       IF $DATA(^AUPNVIMM(LOCALIEN,0))
                           IF $PIECE(^AUPNVIMM(LOCALIEN,0),"^")=ENCNUM
                               IF $PIECE(^AUPNVIMM(LOCALIEN,0),"^",2)=DFN
                                   SET ERROR=1
               End DoDot:1
 +91      ;
           IF ERROR
               DO MSG^HMPTOOLS("Entry: Immunization already exist for the specified Date and Time for ",2,$PIECE(INFO,U))
               DO ERR(.RSLT)
               QUIT 
 +92      ;
 +93      ; Save/Write IMMUNIZATION to VistA
 +94       DO DQSAVE^ORWPCE1
 +95      ;
 +96      ; Match DFN with the VISIT
 +97       SET (VISIT,LOCALID)=""
           FOR 
               SET LOCALID=$ORDER(^AUPNVSIT("B",ADMNDATE,LOCALID))
               if LOCALID=""
                   QUIT 
               Begin DoDot:1
 +98               SET VISIT=LOCALID
                   SET LOCALIEN=""
                   FOR 
                       SET LOCALIEN=$ORDER(^AUPNVIMM("AD",LOCALID,LOCALIEN))
                       if LOCALIEN=""
                           QUIT 
                       IF $DATA(^AUPNVIMM(LOCALIEN,0))
                           IF $PIECE(^AUPNVIMM(LOCALIEN,0),"^")=ENCNUM
                               if $PIECE(^AUPNVIMM(LOCALIEN,0),"^",2)=DFN
                                   QUIT 
               End DoDot:1
 +99       IF VISIT>0
               Begin DoDot:1
 +100              KILL FILTER
 +101              SET FILTER("noHead")=1
 +102              SET FILTER("patientId")=DFN
 +103              SET FILTER("domain")="visit"
 +104              SET FILTER("id")=VISIT
 +105     ; Return JSON visit Data
                   DO GET^HMPDJ(.HMP,.FILTER)
 +106              SET NOTE=$ORDER(^TIU(8925,"V",VISIT,""))
 +107              IF NOTE>0
                       Begin DoDot:2
 +108                      KILL FILTER
 +109                      SET FILTER("noHead")=1
 +110                      SET FILTER("patientId")=DFN
 +111                      SET FILTER("domain")="document"
 +112     ; Return JSON document Data
                           SET FILTER("id")=OK
 +113                      DO GET^HMPDJ(.HMP,.FILTER)
                       End DoDot:2
 +114              SET GLB="^AUPNV"_ENCTYP
 +115     ;S ENC=$O(@GLB@("AD",VISIT,""))  ; replaced the code with LOCALIEN variable
                   SET ENC=LOCALIEN
 +116     ; Get the full domain name so it matches the tags in HMPDJ0
                   IF ENC>0
                       Begin DoDot:2
 +117                      SET ENCTL=$SELECT(ENCTYP="CPT":"cpt",ENCTYP="HF":"factor",ENCTYP="IMM":"immuniza",1:"MORE")
 +118                      IF ENCTL="MORE"
                               SET ENCTL=$SELECT(ENCTYP="PED":"educatio",ENCTYP="POV":"pov",1:"MORE")
 +119                      IF ENCTL="MORE"
                               SET ENCTL=$SELECT(ENCTYP="SK":"skin",ENCTYP="XAM":"exam",1:"")
 +120                      KILL FILTER
 +121                      SET FILTER("noHead")=1
 +122                      SET FILTER("patientId")=DFN
 +123                      SET FILTER("domain")=ENCTL
 +124                      SET FILTER("id")=ENC
 +125     ; Return JSON Immunization Data
                           DO GET^HMPDJ(.HMP,.FILTER)
 +126     ;; renmove this ;; line
 +127                      SET HMPFCNT=0
 +128     ; Build Metastamp and Syncstatus
                           SET HMPUID=$$SETUID^HMPUTILS(ENCTL,DFN,ENC)
 +129                      SET HMPE=$GET(^TMP("HMP",$JOB,1,1))
 +130                      SET STMPTM=$TRANSLATE($PIECE($PIECE(HMPE,"stampTime",2),","),""":")
 +131     ; Removed METASTAMP and SYNCSTART /SYNCSTOP
                           DO ADHOC^HMPUTIL2(ENCTL,HMPFCNT,DFN,HMPUID,STMPTM)
 +132                      SET RSLT=$$EXTRACT(HMP)
 +133                      KILL ^TMP("HMPIMM",$JOB)
 +134                      MERGE ^TMP("HMPIMM",$JOB)=RSLT
 +135     ;M ^TMP("HMPIMM",$J)=^TMP("HMP",$J)
 +136     ;Stored JSON in HMP WRTIEBACK IMMUNIZATION temporary global for the job/user
                           KILL ^TMP("HMPIMM",$JOB,"total")
 +137                      KILL RSLT
 +138     ;Stored location of top level of HMP WRITEBACK JSON in Result variable
                           SET RSLT=$NAME(^TMP("HMPIMM",$JOB))
                       End DoDot:2
               End DoDot:1
 +139      QUIT 
 +140     ;
 +1        NEW HMPSTOP,HMPFND,NULLCHK
 +2        SET RSLT=""
           SET X=0
           SET HMPSTOP=0
           SET HMPFND=0
 +3        SET (I,J)=0
 +4        FOR 
               SET I=$ORDER(^TMP("HMPF",$JOB,I))
               if I=""!(HMPSTOP)
                   QUIT 
               Begin DoDot:1
 +5                FOR 
                       SET J=$ORDER(^TMP("HMPF",$JOB,I,J))
                       if J=""
                           QUIT 
                       Begin DoDot:2
 +6                        IF $GET(^TMP("HMPF",$JOB,I,J))["syncStatus"
                               Begin DoDot:3
 +7                                if $PIECE(^TMP("HMPF",$JOB,I,J),"
                                       QUIT 
 +8                                SET RSLT(X)=RSLT(X)_$PIECE(^TMP("HMPF",$JOB,I,J),",",1)
 +9                                SET HMPSTOP=1
 +10                               QUIT 
                               End DoDot:3
 +11                       if $DATA(^TMP("HMPF",$JOB))=""
                               QUIT 
 +12                       if $GET(^TMP("HMPF",$JOB,I,J))=""
                               QUIT 
 +13                       if $PIECE(^TMP("HMPF",$JOB,I,J),",",1)'["immuniza"
                               QUIT 
 +14                       if $PIECE(^TMP("HMPF",$JOB,I,J),",",4)'["localId"
                               QUIT 
 +15                       if $PIECE(^TMP("HMPF",$JOB,I,J),"
                               QUIT 
 +16                       SET X=X+1
 +17                       SET RSLT(X)=$GET(^TMP("HMPF",$JOB,I,J))
 +18                       FOR 
                               SET J=$ORDER(^TMP("HMPF",$JOB,I,J))
                               if J=""
                                   QUIT 
                               Begin DoDot:3
 +19                               if $PIECE(^TMP("HMPF",$JOB,I,J),"
                                       QUIT 
 +20                               SET X=X+1
 +21                               SET RSLT(X)=$GET(^TMP("HMPF",$JOB,I,J))
 +22                               SET HMPFND=1
 +23                               QUIT 
                               End DoDot:3
 +24                       SET I=$ORDER(^TMP("HMPF",$JOB,I))
 +25                       QUIT 
                       End DoDot:2
 +26               QUIT 
               End DoDot:1
 +27       QUIT RSLT
ERR(RSLT) ; Display Error
 +1        KILL ^TMP("HMPIMM",$JOB)
 +2        MERGE ^TMP("HMPIMM",$JOB)=RSLT
 +3       ;Stored JSON in HMP WRTIEBACK IMMUNIZATION temporary global for the job/user
           KILL ^TMP("HMPIMM",$JOB,"total")
 +4        KILL RSLT
 +5       ;Stored location of top level of HMP WRITEBACK JSON in Result variable
           SET RSLT=$NAME(^TMP("HMPIMM",$JOB))
 +6        QUIT 
 +7       ;