- ORWPT2 ; SLC/JLC - Patient Lookup Functions (cont) ; Aug 29, 2023@11:35
- ;;3.0;ORDER ENTRY/RESULTS REPORTING;**485,608**;Dec 17, 1997;Build 15
- ;
- ; Reference to OUTPTPR^SDUTL3 in ICR #1252
- ; Reference to ^AUPNVSIT in ICR #2028
- ; - READ ACCESS ONLY TO PCE VISIT FILE
- ; covers $Ordering through "AET" index as well
- ; as the READing of the zero node.
- ; Reference to INP^VADPT in ICR #10061
- ; Reference to FMTE^XLFDT in ICR #10103
- ; Reference to GUIBS5A^DPTLK6 in ICR #3593
- ; Reference to STATUS^PXRMCOVID19 in ICR #7146
- ; Reference to GET^XPAR in ICR #2263
- ;
- Q
- ;
- COVID(Y,DFN) ; return COVID-19 statuses
- N A,RIEN
- S RIEN=+$$GET^XPAR("ALL","OR OTHER INFO REMINDER",1,"I")
- I RIEN=0 S Y="-1^No Reminder definition is defined"
- ;ICR #7146
- S Y=$$STATUS^PXRMCOVID19(DFN,RIEN)
- Q Y
- ;
- IDINFO(REC,DFN) ; Return more identifying info for a patient
- ; This RPC allows retrieval of the Inpatient Provider,
- ; Primary Care Provider, Last Location Name & Last Visit
- ; Date for a Patient.
- ;
- ; Input:
- ; DFN is the unique IEN into PATIENT file #2
- ; Output:
- ; REC which is returned as Inpatient Provider ^
- ; Primary Care Provider ^ Last Location Name
- ; ^ Last Visit Date
- ;
- N DELETED,RECPCE,VAIN,VDT,VSTINFO
- F RECPCE=1:1:4 S $P(REC,U,RECPCE)=""
- D INP^VADPT I $G(VAIN(2)) S $P(REC,U,1)=$P(VAIN(2),U,2)
- S $P(REC,U,2)=$P($$OUTPTPR^SDUTL3(DFN),U,2)
- S VDT=""
- VDTLOOP ; Loop to next previous one if this one Deleted
- S VDT=$O(^AUPNVSIT("AET",DFN,VDT),-1)
- I VDT]"" D G:DELETED VDTLOOP
- . S DELETED=$$DELETED(DFN,VDT) Q:DELETED
- . D LIST^ORQQVS(.VSTINFO,DFN,VDT,VDT,"") ; retrieve the one visit record
- . I $G(VSTINFO(1))]"" D
- .. S $P(REC,U,3)=$P($P(VSTINFO(1),U,3),";",2)
- .. S $P(REC,U,4)=$$FMTE^XLFDT($P($P(VSTINFO(1),U,2),".",1))
- Q
- ;
- DELETED(DFN,VDT) ; Check if VISIT is Deleted
- N V0,VLOC,VETYP,VIEN
- S VLOC=$O(^AUPNVSIT("AET",DFN,VDT,"")) Q:VLOC="" 1
- S VETYP=$O(^AUPNVSIT("AET",DFN,VDT,VLOC,"")) Q:VETYP="" 1
- S VIEN=$O(^AUPNVSIT("AET",DFN,VDT,VLOC,VETYP,""))
- Q:VIEN="" 1 S V0=$G(^AUPNVSIT(VIEN,0)) Q:V0="" 1
- I $P(V0,U,11)=1 Q 1
- Q 0
- LOOKUP(ORRTN,DFN) ; Lookup not only for similar patients but include extra data
- N INDX,GUICALL,RT1,RT2,RT3,NDFN
- D GUIBS5A^DPTLK6(.GUICALL,DFN)
- I GUICALL(1)<1 Q
- M ORRTN=GUICALL
- S INDX=1
- F S INDX=$O(ORRTN(INDX)) Q:INDX="" D
- . I $P(ORRTN(INDX),"^")'=1 Q
- . S NDFN=$P(ORRTN(INDX),"^",2)
- . D IDINFO^ORWPT(.RT1,NDFN)
- . D IDINFO^ORWPT2(.RT2,NDFN)
- . D PRCARE^ORWPT1(.RT3,NDFN)
- . S $P(ORRTN(INDX),"^",6)=$P(RT1,"^",6)
- . S $P(ORRTN(INDX),"^",7)=$P(RT2,"^",2)
- . S $P(ORRTN(INDX),"^",8)=$P(RT2,"^",3)
- . S $P(ORRTN(INDX),"^",9)=$P(RT2,"^",4)
- . S $P(ORRTN(INDX),"^",10)=$P(RT3,"^",3)
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HORWPT2 2756 printed Feb 19, 2025@00:03:45 Page 2
- ORWPT2 ; SLC/JLC - Patient Lookup Functions (cont) ; Aug 29, 2023@11:35
- +1 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**485,608**;Dec 17, 1997;Build 15
- +2 ;
- +3 ; Reference to OUTPTPR^SDUTL3 in ICR #1252
- +4 ; Reference to ^AUPNVSIT in ICR #2028
- +5 ; - READ ACCESS ONLY TO PCE VISIT FILE
- +6 ; covers $Ordering through "AET" index as well
- +7 ; as the READing of the zero node.
- +8 ; Reference to INP^VADPT in ICR #10061
- +9 ; Reference to FMTE^XLFDT in ICR #10103
- +10 ; Reference to GUIBS5A^DPTLK6 in ICR #3593
- +11 ; Reference to STATUS^PXRMCOVID19 in ICR #7146
- +12 ; Reference to GET^XPAR in ICR #2263
- +13 ;
- +14 QUIT
- +15 ;
- COVID(Y,DFN) ; return COVID-19 statuses
- +1 NEW A,RIEN
- +2 SET RIEN=+$$GET^XPAR("ALL","OR OTHER INFO REMINDER",1,"I")
- +3 IF RIEN=0
- SET Y="-1^No Reminder definition is defined"
- +4 ;ICR #7146
- +5 SET Y=$$STATUS^PXRMCOVID19(DFN,RIEN)
- +6 QUIT Y
- +7 ;
- IDINFO(REC,DFN) ; Return more identifying info for a patient
- +1 ; This RPC allows retrieval of the Inpatient Provider,
- +2 ; Primary Care Provider, Last Location Name & Last Visit
- +3 ; Date for a Patient.
- +4 ;
- +5 ; Input:
- +6 ; DFN is the unique IEN into PATIENT file #2
- +7 ; Output:
- +8 ; REC which is returned as Inpatient Provider ^
- +9 ; Primary Care Provider ^ Last Location Name
- +10 ; ^ Last Visit Date
- +11 ;
- +12 NEW DELETED,RECPCE,VAIN,VDT,VSTINFO
- +13 FOR RECPCE=1:1:4
- SET $PIECE(REC,U,RECPCE)=""
- +14 DO INP^VADPT
- IF $GET(VAIN(2))
- SET $PIECE(REC,U,1)=$PIECE(VAIN(2),U,2)
- +15 SET $PIECE(REC,U,2)=$PIECE($$OUTPTPR^SDUTL3(DFN),U,2)
- +16 SET VDT=""
- VDTLOOP ; Loop to next previous one if this one Deleted
- +1 SET VDT=$ORDER(^AUPNVSIT("AET",DFN,VDT),-1)
- +2 IF VDT]""
- Begin DoDot:1
- +3 SET DELETED=$$DELETED(DFN,VDT)
- if DELETED
- QUIT
- +4 ; retrieve the one visit record
- DO LIST^ORQQVS(.VSTINFO,DFN,VDT,VDT,"")
- +5 IF $GET(VSTINFO(1))]""
- Begin DoDot:2
- +6 SET $PIECE(REC,U,3)=$PIECE($PIECE(VSTINFO(1),U,3),";",2)
- +7 SET $PIECE(REC,U,4)=$$FMTE^XLFDT($PIECE($PIECE(VSTINFO(1),U,2),".",1))
- End DoDot:2
- End DoDot:1
- if DELETED
- GOTO VDTLOOP
- +8 QUIT
- +9 ;
- DELETED(DFN,VDT) ; Check if VISIT is Deleted
- +1 NEW V0,VLOC,VETYP,VIEN
- +2 SET VLOC=$ORDER(^AUPNVSIT("AET",DFN,VDT,""))
- if VLOC=""
- QUIT 1
- +3 SET VETYP=$ORDER(^AUPNVSIT("AET",DFN,VDT,VLOC,""))
- if VETYP=""
- QUIT 1
- +4 SET VIEN=$ORDER(^AUPNVSIT("AET",DFN,VDT,VLOC,VETYP,""))
- +5 if VIEN=""
- QUIT 1
- SET V0=$GET(^AUPNVSIT(VIEN,0))
- if V0=""
- QUIT 1
- +6 IF $PIECE(V0,U,11)=1
- QUIT 1
- +7 QUIT 0
- LOOKUP(ORRTN,DFN) ; Lookup not only for similar patients but include extra data
- +1 NEW INDX,GUICALL,RT1,RT2,RT3,NDFN
- +2 DO GUIBS5A^DPTLK6(.GUICALL,DFN)
- +3 IF GUICALL(1)<1
- QUIT
- +4 MERGE ORRTN=GUICALL
- +5 SET INDX=1
- +6 FOR
- SET INDX=$ORDER(ORRTN(INDX))
- if INDX=""
- QUIT
- Begin DoDot:1
- +7 IF $PIECE(ORRTN(INDX),"^")'=1
- QUIT
- +8 SET NDFN=$PIECE(ORRTN(INDX),"^",2)
- +9 DO IDINFO^ORWPT(.RT1,NDFN)
- +10 DO IDINFO^ORWPT2(.RT2,NDFN)
- +11 DO PRCARE^ORWPT1(.RT3,NDFN)
- +12 SET $PIECE(ORRTN(INDX),"^",6)=$PIECE(RT1,"^",6)
- +13 SET $PIECE(ORRTN(INDX),"^",7)=$PIECE(RT2,"^",2)
- +14 SET $PIECE(ORRTN(INDX),"^",8)=$PIECE(RT2,"^",3)
- +15 SET $PIECE(ORRTN(INDX),"^",9)=$PIECE(RT2,"^",4)
- +16 SET $PIECE(ORRTN(INDX),"^",10)=$PIECE(RT3,"^",3)
- End DoDot:1
- +17 QUIT