- HMPDJ04A ;ASMR/MKB - Admissions,PTF;Nov 12, 2015 16:42:22
- ;;2.0;ENTERPRISE HEALTH MANAGEMENT PLATFORM;**2**;Sep 01, 2011;Build 28
- ;Per VA Directive 6402, this routine should not be modified.
- ;
- ; External References DBIA#
- ; ------------------- -----
- ; ^AUPNVSIT 2028
- ; ^DGPM 1865
- ; ^DIC(42 10039
- ; ^DPT 10035
- ; ^SC 10040
- ; ^VA(200 10060
- ; DGPTFAPI 3157
- ; DIC 2051
- ; DILFD 2055
- ; DIQ 2056
- ; ICDCODE 3990
- ; ICPTCOD 1995
- ; VADPT 10061
- ; XUAF4 2171
- ;
- ; All tags expect DFN, ID, [HMPSTART, HMPSTOP, HMPMAX, HMPTEXT]
- Q
- ;
- ADM(ID,DATE) ; -- admission [from VSIT1]
- N ADM,VADMVT,VAIP,VAERR,MVT,SPEC,HLOC,FAC,ICD,I
- S ID=$G(ID),DATE=+$G(DATE) Q:ID="" ;Q:DATE<1
- I ID S VAIP("D")=DATE,VST=+ID
- I ID?1"H"1.N S VAIP("E")=+$E(ID,2,99),VST=0
- D IN5^VADPT Q:'$G(VAIP(1)) ;deleted
- S VADMVT=+$G(VAIP(13)),ID="H"_VADMVT
- S ADM("localId")=ID,ADM("uid")=$$SETUID^HMPUTILS("visit",DFN,ID)
- S:'DATE DATE=+$G(VAIP(13,1)) S:'VST VST=$$VISIT(DFN,DATE)
- S (ADM("dateTime"),ADM("stay","arrivalDateTime"))=$$JSONDT^HMPUTILS(DATE)
- S:$L($P(VAIP(6),U,2)) ADM("roomBed")=$P(VAIP(6),U,2)
- ;DE2818, (#.105) CURRENT ADMISSION, changed ^DPT to FileMan, ICR 10035
- S MVT=13,I=0 I VADMVT=$$GET1^DIQ(2,DFN_",",.105,"I") D ;if current admission,
- . S ADM("current")="true",MVT=14 ; use last movement info
- . S X=$$GET1^DIQ(2,DFN_",",.101,"I") S:$L(X) ADM("roomBed")=X ;(#.101) ROOM-BED, DE2818
- . K HMPADMIT ;kill flag from HMPDJ0
- S SPEC=$G(VAIP(MVT,6)),ADM("specialty")=$P(SPEC,U,2)
- S X=$$SERV^HMPDVSIT(+SPEC),ADM("service")=X
- ;DE2818, changed from ^DIC(42) to FileMan, ICR 10039
- S HLOC=+$$GET1^DIQ(42,+$G(VAIP(MVT,4))_",",44,"I"),FAC=$$FAC^HMPD(+HLOC) I HLOC D
- . S ADM("locationUid")=$$SETUID^HMPUTILS("location",,+HLOC)
- . ;DE2818 begin, changed ^SC to FileMan, ICR 10040
- . S X=$$GET1^DIQ(44,HLOC_",",1) S:X]"" ADM("shortLocationName")=X ;(#1) ABBREVIATION
- . S ADM("locationName")=$$GET1^DIQ(44,HLOC_",",.01) ;(#.01) NAME
- . S X=$$AMIS^HMPDVSIT($$GET1^DIQ(44,HLOC_",",8,"I")) ;(#8) STOP CODE NUMBER
- . ;DE2818, end
- . S:$L($G(X)) ADM("stopCodeUid")="urn:va:stop-code:"_$P(X,U),ADM("stopCodeName")=$P(X,U,2)
- . S ADM("summary")="${"_ADM("service")_"}:"_ADM("locationName")
- D FACILITY^HMPUTILS(FAC,"ADM")
- S ADM("categoryCode")="urn:va:encounter-category:AD",ADM("categoryName")="Admission"
- S ADM("patientClassCode")="urn:va:patient-class:IMP",ADM("patientClassName")="Inpatient"
- I $G(VAIP(17)) S ADM("stay","dischargeDateTime")=$$JSONDT^HMPUTILS(+$G(VAIP(17,1)))
- I $G(VAIP(18)) S I=I+1 D PROV("ADM",I,+VAIP(18),"A") ;attending
- I $G(VAIP(MVT,5)) S I=I+1 D PROV("ADM",I,+VAIP(MVT,5),"P",1) ;primary
- S ICD=$$POV^HMPDJ04(VST) S:'ICD ICD=$$PTF^HMPDVSIT(DFN,VAIP(12)) ;PTF>ICD
- I $L(ICD)<2 S ADM("reasonName")=$G(VAIP(MVT,7))
- E S ADM("reasonUid")=$$SETNCS^HMPUTILS("icd",ICD),ADM("reasonName")=$P(ICD,U,2)
- S X=$$CPT^HMPDJ04(VST),ADM("typeName")=$S(X:$P($$CPT^ICPTCOD(X),U,3),1:$$CATG^HMPDVSIT("H"))
- D MVT(VADMVT) ;sub-movements
- ; TIU(VST,.ADM) ;notes/summary
- ; Next 2 lines added for visits whose IDs start with an "H". JD - 1/26/15
- S ADM("lastUpdateTime")=$$EN^HMPSTMP("adm") ;RHL 20150102
- S ADM("stampTime")=ADM("lastUpdateTime") ; RHL 20150102
- ;US6734 - pre-compile metastamp
- I $G(HMPMETA) D ADD^HMPMETA("visit",ADM("uid"),ADM("stampTime")) Q:HMPMETA=1 ;US6734,US11019
- D ADD^HMPDJ("ADM","visit")
- Q
- ;
- TIU(VISIT,ARR) ; -- add notes to ARR("document")
- N X,Y,I,HMPX,LT,NT,DA,CNT,HMPY
- D FIND^DIC(8925,,.01,"QX",+$G(VISIT),,"V",,,"HMPX")
- S Y="",(I,CNT)=0
- F S I=$O(HMPX("DILIST",1,I)) Q:I<1 D
- . S LT=$G(HMPX("DILIST","ID",I,.01)) Q:$P(LT," ")="Addendum"
- . S DA=$G(HMPX("DILIST",2,I))
- . S NT=$$GET1^DIQ(8925,+DA_",",".01:1501")
- . S CNT=CNT+1,ARR("documents",CNT,"uid")=$$SETUID^HMPUTILS("document",DFN,+DA)
- . S ARR("documents",CNT,"localTitle")=LT
- . S:$L(NT) ARR("documents",CNT,"nationalTitle")=NT
- Q
- ;
- PROV(ARR,I,IEN,ROLE,PRIM) ; -- add providers
- S @ARR@("providers",I,"providerUid")=$$SETUID^HMPUTILS("user",,+IEN)
- S @ARR@("providers",I,"providerName")=$$GET1^DIQ(200,IEN_",",.01) ;DE2818, changed ^VA(200) to FileMan ICR 10060
- S @ARR@("providers",I,"role")=ROLE
- S:$G(PRIM) @ARR@("providers",I,"primary")="true"
- Q
- ;
- MVT(CA) ; -- add movements to ADM("movement",i,"attribute")
- N DATE,DA,CNT,X S (DATE,CNT)=0
- ;DE2818, ^DGPM( - ICR 1865
- F S DATE=$O(^DGPM("APCA",DFN,CA,DATE)) Q:DATE<1 S DA=+$O(^(DATE,0)) I DA'=CA D
- . S X0=$G(^DGPM(DA,0)),CNT=CNT+1
- . S ADM("movements",CNT,"localId")=DA
- . S ADM("movements",CNT,"dateTime")=$$JSONDT^HMPUTILS(DATE)
- . S ADM("movements",CNT,"movementType")=$$EXTERNAL^DILFD(405,.02,,$P(X0,U,2))
- . S X=+$P(X0,U,19) I X D
- .. S ADM("movements",CNT,"providerUid")=$$SETUID^HMPUTILS("user",,X)
- .. S ADM("movements",CNT,"providerName")=$$GET1^DIQ(200,X_",",.01) ;DE2818, changed ^VA(200) to FileMan ICR 10060
- . S X=+$P(X0,U,9)
- . S:X ADM("movements",CNT,"specialty")=$$EXTERNAL^DILFD(405,.09,,X)
- . ;DE2818, changed ^DIC(42) to FileMan, ICR 10039
- . S HLOC=+$$GET1^DIQ(42,+$P(X0,U,6)_",",44,"I"),FAC=$$FAC^HMPD(HLOC) I HLOC D
- .. S ADM("movements",CNT,"locationUid")=$$SETUID^HMPUTILS("location",,HLOC)
- .. ;DE2818, changed ^SC to FileMan, ICR 10040
- .. S ADM("movements",CNT,"locationName")=$$GET1^DIQ(44,HLOC_",",.01) ;(#.01) NAME
- Q
- ;
- PTFA(HMPLID) ; -- find ID in ^PXRMINDX(45) and call PTF1 if successful
- ;Purpose - Build ^TMP("HMPPX") from ^PXRMINDX(45,HMPISYS,"PNI",DFN)
- ;
- ;Called by - PTF^HMPDJ0 (if HMPID is set)
- ;
- ;Assumptions -
- ;1. ID is being passed and DFN variable exists
- ;2. ^TMP("HMPPX") does not already exist
- ;
- ;
- ;Modification History -
- ;US5630 (TW) 1. HMPISYS can be either "ICD" (ICD-9) or "10D" (ICD-10)
- ; 2. Namespaced variables and enhanced newing
- ;
- N HMPLEN,HMPTYP,HMPID,HMPISYS,HMPTYP,HMPDX,HMPDT,HMPITEM,HMPRDT,HMPX
- S HMPLEN=$L(HMPLID,";"),HMPTYP=$P(HMPLID,";",HMPLEN),HMPID=$P(HMPLID,";",1,HMPLEN-1)
- ; DE2818, ^PXRMINDX - ICR 4290
- ;Get ICD System from ^PXRMINDX Xref and loop for remaining subscripts
- S HMPISYS="" F S HMPISYS=$O(^PXRMINDX(45,HMPISYS)) Q:HMPISYS="" D
- . I '$D(^PXRMINDX(45,HMPISYS,"PNI",+$G(DFN),HMPTYP)) Q
- . S HMPDX="" F S HMPDX=$O(^PXRMINDX(45,HMPISYS,"PNI",+$G(DFN),HMPTYP,HMPDX)) Q:HMPDX="" D
- .. S HMPDT=0 F S HMPDT=$O(^PXRMINDX(45,HMPISYS,"PNI",+$G(DFN),HMPTYP,HMPDX,HMPDT)) Q:HMPDT="" D
- ... S HMPITEM="" F S HMPITEM=$O(^PXRMINDX(45,HMPISYS,"PNI",+$G(DFN),HMPTYP,HMPDX,HMPDT,HMPITEM)) Q:HMPITEM="" D
- .... I HMPITEM'[HMPID Q
- .... S HMPRDT=9999999-HMPDT
- .... S HMPX=HMPDX_U_HMPDT_U_HMPISYS
- .... S ^TMP("HMPPX",$J,HMPRDT,HMPLID)=HMPX
- Q:'$D(^TMP("HMPPX",$J))
- D PTF1
- K ^TMP("HMPPX",$J)
- Q
- ;
- PTF1 ; Set PTF data into PTF array
- ;Purpose - Get data from ^TMP("HMPPX"), lookup addl PTF, set into PTF array and ^TMP
- ;
- ;Called by - PTFA^HMPDJ04A if HMPID is set, otherwise PTF^HMPDJ0
- ;
- ;Assumptions -
- ;1. HMPLID (local ID) is being passed and DFN,HMPRDT variables exist
- ;2. ^TMP("HMPPX",$J,HMPRDT,ID)=DxCode^[Discharge]Date exists
- ;
- ;Modification History -
- ;US5630 (TW)- HMPISYS can be either "ICD9" or "10D" (ICD-10)
- ;
- N HMPTMP,PTF,HMPP,HMPTYP,HMPDIS,VAIN,HMPADM,VAINDT,HMPLOC,HMPFAC,HMPX,HMPISYS
- S HMPTMP=$G(^TMP("HMPPX",$J,HMPRDT,HMPLID))
- S PTF("localId")=HMPLID
- S PTF("uid")=$$SETUID^HMPUTILS("ptf",DFN,HMPLID)
- S HMPP=$L(HMPLID,";")
- S HMPTYP=$P(HMPLID,";",HMPP)
- I HMPTYP="DXLS" S PTF("principalDx")="true" ; Is this the principal dx?
- I $P(HMPTYP," ")="M" Q ; Quit if movement dx
- S HMPDIS=$P(HMPTMP,U,2)
- I HMPDIS S VAINDT=HMPDIS-.0001
- D INP^VADPT ; Get inpatient VAIN array
- I '$G(VAIN(1)) Q ; Quit if not inpatient
- ;US5630 - TW - Extract Calculated DRG for PTF
- S PTF("drg")=$$GET1^DIQ(45,+HMPLID_",",9,"")
- S PTF("admissionUid")=$$SETUID^HMPUTILS("visit",DFN,"H"_VAIN(1))
- S HMPADM=+$G(VAIN(7)) ; Admission date
- ;DE2818, changed from ^DIC(42) to FileMan, ICR 10039
- S HMPLOC=+$$GET1^DIQ(42,+$G(VAIN(4))_",",44,"I") ; Get location
- S:HMPADM PTF("arrivalDateTime")=$$JSONDT^HMPUTILS(HMPADM)
- S:HMPDIS PTF("dischargeDateTime")=$$JSONDT^HMPUTILS(HMPDIS)
- S HMPFAC=$$FAC^HMPD(HMPLOC) D:HMPFAC FACILITY^HMPUTILS(HMPFAC,"PTF")
- S PTF("lastUpdateTime")=$$EN^HMPSTMP("ptf") ;RHL 20150102
- S PTF("stampTime")=PTF("lastUpdateTime") ; RHL 20150102
- ;US5630 - TW - Check for ICD Coding System
- S HMPDX=$P(HMPTMP,U)
- S HMPISYS=$P(HMPTMP,U,3)
- S HMPISYS=$S(HMPISYS="ICD":1,"ICP":2,"10D":30,"10P":31,1:1) ; Identify ICD coding system for correct lookup
- S HMPX=$$ICDDX^ICDEX(HMPDX,"",HMPISYS)
- S PTF("icdCode")=$$SETNCS^HMPUTILS("icd",$P(HMPX,U,2))
- S PTF("icdName")=$P(HMPX,U,4)
- ;US6734 - pre-compile metastamp
- I $G(HMPMETA) D ADD^HMPMETA("ptf",PTF("uid"),PTF("stampTime")) Q:HMPMETA=1 ;US6734,US11019
- D ADD^HMPDJ("PTF","ptf")
- Q
- ;
- VISIT(DFN,DATE) ; -- Return visit# for admission
- N X,Y
- S X=9999999-$P(DATE,".")_"."_$P(DATE,".",2)
- S Y=+$O(^AUPNVSIT("AAH",DFN,X,0)) ;DE2818, ICR 2028
- Q Y
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HHMPDJ04A 9340 printed Feb 18, 2025@23:19:42 Page 2
- HMPDJ04A ;ASMR/MKB - Admissions,PTF;Nov 12, 2015 16:42:22
- +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 ; External References DBIA#
- +5 ; ------------------- -----
- +6 ; ^AUPNVSIT 2028
- +7 ; ^DGPM 1865
- +8 ; ^DIC(42 10039
- +9 ; ^DPT 10035
- +10 ; ^SC 10040
- +11 ; ^VA(200 10060
- +12 ; DGPTFAPI 3157
- +13 ; DIC 2051
- +14 ; DILFD 2055
- +15 ; DIQ 2056
- +16 ; ICDCODE 3990
- +17 ; ICPTCOD 1995
- +18 ; VADPT 10061
- +19 ; XUAF4 2171
- +20 ;
- +21 ; All tags expect DFN, ID, [HMPSTART, HMPSTOP, HMPMAX, HMPTEXT]
- +22 QUIT
- +23 ;
- ADM(ID,DATE) ; -- admission [from VSIT1]
- +1 NEW ADM,VADMVT,VAIP,VAERR,MVT,SPEC,HLOC,FAC,ICD,I
- +2 ;Q:DATE<1
- SET ID=$GET(ID)
- SET DATE=+$GET(DATE)
- if ID=""
- QUIT
- +3 IF ID
- SET VAIP("D")=DATE
- SET VST=+ID
- +4 IF ID?1"H"1.N
- SET VAIP("E")=+$EXTRACT(ID,2,99)
- SET VST=0
- +5 ;deleted
- DO IN5^VADPT
- if '$GET(VAIP(1))
- QUIT
- +6 SET VADMVT=+$GET(VAIP(13))
- SET ID="H"_VADMVT
- +7 SET ADM("localId")=ID
- SET ADM("uid")=$$SETUID^HMPUTILS("visit",DFN,ID)
- +8 if 'DATE
- SET DATE=+$GET(VAIP(13,1))
- if 'VST
- SET VST=$$VISIT(DFN,DATE)
- +9 SET (ADM("dateTime"),ADM("stay","arrivalDateTime"))=$$JSONDT^HMPUTILS(DATE)
- +10 if $LENGTH($PIECE(VAIP(6),U,2))
- SET ADM("roomBed")=$PIECE(VAIP(6),U,2)
- +11 ;DE2818, (#.105) CURRENT ADMISSION, changed ^DPT to FileMan, ICR 10035
- +12 ;if current admission,
- SET MVT=13
- SET I=0
- IF VADMVT=$$GET1^DIQ(2,DFN_",",.105,"I")
- Begin DoDot:1
- +13 ; use last movement info
- SET ADM("current")="true"
- SET MVT=14
- +14 ;(#.101) ROOM-BED, DE2818
- SET X=$$GET1^DIQ(2,DFN_",",.101,"I")
- if $LENGTH(X)
- SET ADM("roomBed")=X
- +15 ;kill flag from HMPDJ0
- KILL HMPADMIT
- End DoDot:1
- +16 SET SPEC=$GET(VAIP(MVT,6))
- SET ADM("specialty")=$PIECE(SPEC,U,2)
- +17 SET X=$$SERV^HMPDVSIT(+SPEC)
- SET ADM("service")=X
- +18 ;DE2818, changed from ^DIC(42) to FileMan, ICR 10039
- +19 SET HLOC=+$$GET1^DIQ(42,+$GET(VAIP(MVT,4))_",",44,"I")
- SET FAC=$$FAC^HMPD(+HLOC)
- IF HLOC
- Begin DoDot:1
- +20 SET ADM("locationUid")=$$SETUID^HMPUTILS("location",,+HLOC)
- +21 ;DE2818 begin, changed ^SC to FileMan, ICR 10040
- +22 ;(#1) ABBREVIATION
- SET X=$$GET1^DIQ(44,HLOC_",",1)
- if X]""
- SET ADM("shortLocationName")=X
- +23 ;(#.01) NAME
- SET ADM("locationName")=$$GET1^DIQ(44,HLOC_",",.01)
- +24 ;(#8) STOP CODE NUMBER
- SET X=$$AMIS^HMPDVSIT($$GET1^DIQ(44,HLOC_",",8,"I"))
- +25 ;DE2818, end
- +26 if $LENGTH($GET(X))
- SET ADM("stopCodeUid")="urn:va:stop-code:"_$PIECE(X,U)
- SET ADM("stopCodeName")=$PIECE(X,U,2)
- +27 SET ADM("summary")="${"_ADM("service")_"}:"_ADM("locationName")
- End DoDot:1
- +28 DO FACILITY^HMPUTILS(FAC,"ADM")
- +29 SET ADM("categoryCode")="urn:va:encounter-category:AD"
- SET ADM("categoryName")="Admission"
- +30 SET ADM("patientClassCode")="urn:va:patient-class:IMP"
- SET ADM("patientClassName")="Inpatient"
- +31 IF $GET(VAIP(17))
- SET ADM("stay","dischargeDateTime")=$$JSONDT^HMPUTILS(+$GET(VAIP(17,1)))
- +32 ;attending
- IF $GET(VAIP(18))
- SET I=I+1
- DO PROV("ADM",I,+VAIP(18),"A")
- +33 ;primary
- IF $GET(VAIP(MVT,5))
- SET I=I+1
- DO PROV("ADM",I,+VAIP(MVT,5),"P",1)
- +34 ;PTF>ICD
- SET ICD=$$POV^HMPDJ04(VST)
- if 'ICD
- SET ICD=$$PTF^HMPDVSIT(DFN,VAIP(12))
- +35 IF $LENGTH(ICD)<2
- SET ADM("reasonName")=$GET(VAIP(MVT,7))
- +36 IF '$TEST
- SET ADM("reasonUid")=$$SETNCS^HMPUTILS("icd",ICD)
- SET ADM("reasonName")=$PIECE(ICD,U,2)
- +37 SET X=$$CPT^HMPDJ04(VST)
- SET ADM("typeName")=$SELECT(X:$PIECE($$CPT^ICPTCOD(X),U,3),1:$$CATG^HMPDVSIT("H"))
- +38 ;sub-movements
- DO MVT(VADMVT)
- +39 ; TIU(VST,.ADM) ;notes/summary
- +40 ; Next 2 lines added for visits whose IDs start with an "H". JD - 1/26/15
- +41 ;RHL 20150102
- SET ADM("lastUpdateTime")=$$EN^HMPSTMP("adm")
- +42 ; RHL 20150102
- SET ADM("stampTime")=ADM("lastUpdateTime")
- +43 ;US6734 - pre-compile metastamp
- +44 ;US6734,US11019
- IF $GET(HMPMETA)
- DO ADD^HMPMETA("visit",ADM("uid"),ADM("stampTime"))
- if HMPMETA=1
- QUIT
- +45 DO ADD^HMPDJ("ADM","visit")
- +46 QUIT
- +47 ;
- TIU(VISIT,ARR) ; -- add notes to ARR("document")
- +1 NEW X,Y,I,HMPX,LT,NT,DA,CNT,HMPY
- +2 DO FIND^DIC(8925,,.01,"QX",+$GET(VISIT),,"V",,,"HMPX")
- +3 SET Y=""
- SET (I,CNT)=0
- +4 FOR
- SET I=$ORDER(HMPX("DILIST",1,I))
- if I<1
- QUIT
- Begin DoDot:1
- +5 SET LT=$GET(HMPX("DILIST","ID",I,.01))
- if $PIECE(LT," ")="Addendum"
- QUIT
- +6 SET DA=$GET(HMPX("DILIST",2,I))
- +7 SET NT=$$GET1^DIQ(8925,+DA_",",".01:1501")
- +8 SET CNT=CNT+1
- SET ARR("documents",CNT,"uid")=$$SETUID^HMPUTILS("document",DFN,+DA)
- +9 SET ARR("documents",CNT,"localTitle")=LT
- +10 if $LENGTH(NT)
- SET ARR("documents",CNT,"nationalTitle")=NT
- End DoDot:1
- +11 QUIT
- +12 ;
- PROV(ARR,I,IEN,ROLE,PRIM) ; -- add providers
- +1 SET @ARR@("providers",I,"providerUid")=$$SETUID^HMPUTILS("user",,+IEN)
- +2 ;DE2818, changed ^VA(200) to FileMan ICR 10060
- SET @ARR@("providers",I,"providerName")=$$GET1^DIQ(200,IEN_",",.01)
- +3 SET @ARR@("providers",I,"role")=ROLE
- +4 if $GET(PRIM)
- SET @ARR@("providers",I,"primary")="true"
- +5 QUIT
- +6 ;
- MVT(CA) ; -- add movements to ADM("movement",i,"attribute")
- +1 NEW DATE,DA,CNT,X
- SET (DATE,CNT)=0
- +2 ;DE2818, ^DGPM( - ICR 1865
- +3 FOR
- SET DATE=$ORDER(^DGPM("APCA",DFN,CA,DATE))
- if DATE<1
- QUIT
- SET DA=+$ORDER(^(DATE,0))
- IF DA'=CA
- Begin DoDot:1
- +4 SET X0=$GET(^DGPM(DA,0))
- SET CNT=CNT+1
- +5 SET ADM("movements",CNT,"localId")=DA
- +6 SET ADM("movements",CNT,"dateTime")=$$JSONDT^HMPUTILS(DATE)
- +7 SET ADM("movements",CNT,"movementType")=$$EXTERNAL^DILFD(405,.02,,$PIECE(X0,U,2))
- +8 SET X=+$PIECE(X0,U,19)
- IF X
- Begin DoDot:2
- +9 SET ADM("movements",CNT,"providerUid")=$$SETUID^HMPUTILS("user",,X)
- +10 ;DE2818, changed ^VA(200) to FileMan ICR 10060
- SET ADM("movements",CNT,"providerName")=$$GET1^DIQ(200,X_",",.01)
- End DoDot:2
- +11 SET X=+$PIECE(X0,U,9)
- +12 if X
- SET ADM("movements",CNT,"specialty")=$$EXTERNAL^DILFD(405,.09,,X)
- +13 ;DE2818, changed ^DIC(42) to FileMan, ICR 10039
- +14 SET HLOC=+$$GET1^DIQ(42,+$PIECE(X0,U,6)_",",44,"I")
- SET FAC=$$FAC^HMPD(HLOC)
- IF HLOC
- Begin DoDot:2
- +15 SET ADM("movements",CNT,"locationUid")=$$SETUID^HMPUTILS("location",,HLOC)
- +16 ;DE2818, changed ^SC to FileMan, ICR 10040
- +17 ;(#.01) NAME
- SET ADM("movements",CNT,"locationName")=$$GET1^DIQ(44,HLOC_",",.01)
- End DoDot:2
- End DoDot:1
- +18 QUIT
- +19 ;
- PTFA(HMPLID) ; -- find ID in ^PXRMINDX(45) and call PTF1 if successful
- +1 ;Purpose - Build ^TMP("HMPPX") from ^PXRMINDX(45,HMPISYS,"PNI",DFN)
- +2 ;
- +3 ;Called by - PTF^HMPDJ0 (if HMPID is set)
- +4 ;
- +5 ;Assumptions -
- +6 ;1. ID is being passed and DFN variable exists
- +7 ;2. ^TMP("HMPPX") does not already exist
- +8 ;
- +9 ;
- +10 ;Modification History -
- +11 ;US5630 (TW) 1. HMPISYS can be either "ICD" (ICD-9) or "10D" (ICD-10)
- +12 ; 2. Namespaced variables and enhanced newing
- +13 ;
- +14 NEW HMPLEN,HMPTYP,HMPID,HMPISYS,HMPTYP,HMPDX,HMPDT,HMPITEM,HMPRDT,HMPX
- +15 SET HMPLEN=$LENGTH(HMPLID,";")
- SET HMPTYP=$PIECE(HMPLID,";",HMPLEN)
- SET HMPID=$PIECE(HMPLID,";",1,HMPLEN-1)
- +16 ; DE2818, ^PXRMINDX - ICR 4290
- +17 ;Get ICD System from ^PXRMINDX Xref and loop for remaining subscripts
- +18 SET HMPISYS=""
- FOR
- SET HMPISYS=$ORDER(^PXRMINDX(45,HMPISYS))
- if HMPISYS=""
- QUIT
- Begin DoDot:1
- +19 IF '$DATA(^PXRMINDX(45,HMPISYS,"PNI",+$GET(DFN),HMPTYP))
- QUIT
- +20 SET HMPDX=""
- FOR
- SET HMPDX=$ORDER(^PXRMINDX(45,HMPISYS,"PNI",+$GET(DFN),HMPTYP,HMPDX))
- if HMPDX=""
- QUIT
- Begin DoDot:2
- +21 SET HMPDT=0
- FOR
- SET HMPDT=$ORDER(^PXRMINDX(45,HMPISYS,"PNI",+$GET(DFN),HMPTYP,HMPDX,HMPDT))
- if HMPDT=""
- QUIT
- Begin DoDot:3
- +22 SET HMPITEM=""
- FOR
- SET HMPITEM=$ORDER(^PXRMINDX(45,HMPISYS,"PNI",+$GET(DFN),HMPTYP,HMPDX,HMPDT,HMPITEM))
- if HMPITEM=""
- QUIT
- Begin DoDot:4
- +23 IF HMPITEM'[HMPID
- QUIT
- +24 SET HMPRDT=9999999-HMPDT
- +25 SET HMPX=HMPDX_U_HMPDT_U_HMPISYS
- +26 SET ^TMP("HMPPX",$JOB,HMPRDT,HMPLID)=HMPX
- End DoDot:4
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +27 if '$DATA(^TMP("HMPPX",$JOB))
- QUIT
- +28 DO PTF1
- +29 KILL ^TMP("HMPPX",$JOB)
- +30 QUIT
- +31 ;
- PTF1 ; Set PTF data into PTF array
- +1 ;Purpose - Get data from ^TMP("HMPPX"), lookup addl PTF, set into PTF array and ^TMP
- +2 ;
- +3 ;Called by - PTFA^HMPDJ04A if HMPID is set, otherwise PTF^HMPDJ0
- +4 ;
- +5 ;Assumptions -
- +6 ;1. HMPLID (local ID) is being passed and DFN,HMPRDT variables exist
- +7 ;2. ^TMP("HMPPX",$J,HMPRDT,ID)=DxCode^[Discharge]Date exists
- +8 ;
- +9 ;Modification History -
- +10 ;US5630 (TW)- HMPISYS can be either "ICD9" or "10D" (ICD-10)
- +11 ;
- +12 NEW HMPTMP,PTF,HMPP,HMPTYP,HMPDIS,VAIN,HMPADM,VAINDT,HMPLOC,HMPFAC,HMPX,HMPISYS
- +13 SET HMPTMP=$GET(^TMP("HMPPX",$JOB,HMPRDT,HMPLID))
- +14 SET PTF("localId")=HMPLID
- +15 SET PTF("uid")=$$SETUID^HMPUTILS("ptf",DFN,HMPLID)
- +16 SET HMPP=$LENGTH(HMPLID,";")
- +17 SET HMPTYP=$PIECE(HMPLID,";",HMPP)
- +18 ; Is this the principal dx?
- IF HMPTYP="DXLS"
- SET PTF("principalDx")="true"
- +19 ; Quit if movement dx
- IF $PIECE(HMPTYP," ")="M"
- QUIT
- +20 SET HMPDIS=$PIECE(HMPTMP,U,2)
- +21 IF HMPDIS
- SET VAINDT=HMPDIS-.0001
- +22 ; Get inpatient VAIN array
- DO INP^VADPT
- +23 ; Quit if not inpatient
- IF '$GET(VAIN(1))
- QUIT
- +24 ;US5630 - TW - Extract Calculated DRG for PTF
- +25 SET PTF("drg")=$$GET1^DIQ(45,+HMPLID_",",9,"")
- +26 SET PTF("admissionUid")=$$SETUID^HMPUTILS("visit",DFN,"H"_VAIN(1))
- +27 ; Admission date
- SET HMPADM=+$GET(VAIN(7))
- +28 ;DE2818, changed from ^DIC(42) to FileMan, ICR 10039
- +29 ; Get location
- SET HMPLOC=+$$GET1^DIQ(42,+$GET(VAIN(4))_",",44,"I")
- +30 if HMPADM
- SET PTF("arrivalDateTime")=$$JSONDT^HMPUTILS(HMPADM)
- +31 if HMPDIS
- SET PTF("dischargeDateTime")=$$JSONDT^HMPUTILS(HMPDIS)
- +32 SET HMPFAC=$$FAC^HMPD(HMPLOC)
- if HMPFAC
- DO FACILITY^HMPUTILS(HMPFAC,"PTF")
- +33 ;RHL 20150102
- SET PTF("lastUpdateTime")=$$EN^HMPSTMP("ptf")
- +34 ; RHL 20150102
- SET PTF("stampTime")=PTF("lastUpdateTime")
- +35 ;US5630 - TW - Check for ICD Coding System
- +36 SET HMPDX=$PIECE(HMPTMP,U)
- +37 SET HMPISYS=$PIECE(HMPTMP,U,3)
- +38 ; Identify ICD coding system for correct lookup
- SET HMPISYS=$SELECT(HMPISYS="ICD":1,"ICP":2,"10D":30,"10P":31,1:1)
- +39 SET HMPX=$$ICDDX^ICDEX(HMPDX,"",HMPISYS)
- +40 SET PTF("icdCode")=$$SETNCS^HMPUTILS("icd",$PIECE(HMPX,U,2))
- +41 SET PTF("icdName")=$PIECE(HMPX,U,4)
- +42 ;US6734 - pre-compile metastamp
- +43 ;US6734,US11019
- IF $GET(HMPMETA)
- DO ADD^HMPMETA("ptf",PTF("uid"),PTF("stampTime"))
- if HMPMETA=1
- QUIT
- +44 DO ADD^HMPDJ("PTF","ptf")
- +45 QUIT
- +46 ;
- VISIT(DFN,DATE) ; -- Return visit# for admission
- +1 NEW X,Y
- +2 SET X=9999999-$PIECE(DATE,".")_"."_$PIECE(DATE,".",2)
- +3 ;DE2818, ICR 2028
- SET Y=+$ORDER(^AUPNVSIT("AAH",DFN,X,0))
- +4 QUIT Y