MDPCE1 ; HOIFO/NCA - Updated Routine For Data Extract ;Sep 24, 2021@12:35
;;1.0;CLINICAL PROCEDURES;**6,80**;Apr 01, 2004;Build 3
; Integration Agreements:
; IA# 1889 [Subscription] Create New Visit
; IA# 10048 [Supported] FILE 9.4 references
;
EN1(MDINST,MDPDTE,MDPR,MDTYP,MDETYP,MDCLOC) ; [Function] PCE Visit Creation
; Input parameters
; 1. MDINST [Literal/Required] Transaction IEN
; 2. MDPDT [Literal/Optional] Procedure Date/Time
; 3. MDPR [Literal/Required] CP Definition
; 4. MDTYP [Literal/Required] Type of Visit (Ambulatory or Hospitalization or Event (Historical))
; 5. MDETYP [Literal/Required] Encounter Type (Primary or Ancillary)
; 6. MDCLOC [Literal/Required] Workload Reporting hospital location
;
N DATA,MDPERR,MDJ,MDPKG,MDRES,MDSTR,MDVISIT,MDDRES K ^TMP("MDPXAPI",$J)
S MDOUT=""
S MDPKG=$$FIND1^DIC(9.4,"","MX","CLINICAL PROCEDURES")
I 'MDPKG Q "-1^CLINICAL PROCEDURES does not exist in Package File."
I '$D(^MDD(702,MDINST,0)) Q "-1^No Study Record."
S MDSTR=$G(^MDD(702,MDINST,0))
S MDJ=0,MDJ=MDJ+1
I '$G(MDCLOC) S:MDPR["^" MDCLOC=$P(MDPR,"^",2)
I '$G(MDCLOC) S MDCLOC=$$GET1^DIQ(702.01,+MDPR_",",.05,"I") I 'MDCLOC Q "-1^No Hospital Location for CP Definition."
S ^TMP("MDPXAPI",$J,"ENCOUNTER",MDJ,"ENC D/T")=MDPDTE
S ^TMP("MDPXAPI",$J,"ENCOUNTER",MDJ,"PATIENT")=$P(MDSTR,"^",1)
S ^TMP("MDPXAPI",$J,"ENCOUNTER",MDJ,"HOS LOC")=MDCLOC
S ^TMP("MDPXAPI",$J,"ENCOUNTER",MDJ,"SERVICE CATEGORY")=MDTYP
S ^TMP("MDPXAPI",$J,"ENCOUNTER",MDJ,"ENCOUNTER TYPE")=MDETYP
;MD*1.0*80: If DUZ not defined, zero, not numeric, or null,
; send DUZ for proxy service. (Considered also validating
; whether a numeric DUZ sent in by upstream logic exists
; in file 200. If a numeric DUZ is not in file 200, PCE
; will send back a processing error of "not a valid pointer
; to the New Person file #200". This might indicate a
; configuration issue which the site needs to be aware of.
; Since PCE performs this validation, there shouldn't be a
; need for MDPCE* routines to.)
S MDRES=$$DATA2PCE^PXAPI("^TMP(""MDPXAPI"",$J)",MDPKG,"CLINICAL PROCEDURES",.MDVISIT,$S('$G(DUZ):$$FINDD^MDPCE(),1:""),"",1,"",.MDPERR)
I MDRES S MDOUT=MDVISIT_"^"_MDCLOC_";"_MDPDTE_";"_MDTYP S MDFDA(702,MDINST_",",.07)=MDTYP_";"_MDPDTE_";"_MDCLOC D FILE^DIE("K","MDFDA") K ^TMP("MDPXAPI",$J) Q MDOUT
K ^TMP("MDPXAPI",$J)
S MDOUT="-1^PCE Visit Creation Error."
Q MDOUT
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HMDPCE1 2518 printed Dec 13, 2024@01:43:07 Page 2
MDPCE1 ; HOIFO/NCA - Updated Routine For Data Extract ;Sep 24, 2021@12:35
+1 ;;1.0;CLINICAL PROCEDURES;**6,80**;Apr 01, 2004;Build 3
+2 ; Integration Agreements:
+3 ; IA# 1889 [Subscription] Create New Visit
+4 ; IA# 10048 [Supported] FILE 9.4 references
+5 ;
EN1(MDINST,MDPDTE,MDPR,MDTYP,MDETYP,MDCLOC) ; [Function] PCE Visit Creation
+1 ; Input parameters
+2 ; 1. MDINST [Literal/Required] Transaction IEN
+3 ; 2. MDPDT [Literal/Optional] Procedure Date/Time
+4 ; 3. MDPR [Literal/Required] CP Definition
+5 ; 4. MDTYP [Literal/Required] Type of Visit (Ambulatory or Hospitalization or Event (Historical))
+6 ; 5. MDETYP [Literal/Required] Encounter Type (Primary or Ancillary)
+7 ; 6. MDCLOC [Literal/Required] Workload Reporting hospital location
+8 ;
+9 NEW DATA,MDPERR,MDJ,MDPKG,MDRES,MDSTR,MDVISIT,MDDRES
KILL ^TMP("MDPXAPI",$JOB)
+10 SET MDOUT=""
+11 SET MDPKG=$$FIND1^DIC(9.4,"","MX","CLINICAL PROCEDURES")
+12 IF 'MDPKG
QUIT "-1^CLINICAL PROCEDURES does not exist in Package File."
+13 IF '$DATA(^MDD(702,MDINST,0))
QUIT "-1^No Study Record."
+14 SET MDSTR=$GET(^MDD(702,MDINST,0))
+15 SET MDJ=0
SET MDJ=MDJ+1
+16 IF '$GET(MDCLOC)
if MDPR["^"
SET MDCLOC=$PIECE(MDPR,"^",2)
+17 IF '$GET(MDCLOC)
SET MDCLOC=$$GET1^DIQ(702.01,+MDPR_",",.05,"I")
IF 'MDCLOC
QUIT "-1^No Hospital Location for CP Definition."
+18 SET ^TMP("MDPXAPI",$JOB,"ENCOUNTER",MDJ,"ENC D/T")=MDPDTE
+19 SET ^TMP("MDPXAPI",$JOB,"ENCOUNTER",MDJ,"PATIENT")=$PIECE(MDSTR,"^",1)
+20 SET ^TMP("MDPXAPI",$JOB,"ENCOUNTER",MDJ,"HOS LOC")=MDCLOC
+21 SET ^TMP("MDPXAPI",$JOB,"ENCOUNTER",MDJ,"SERVICE CATEGORY")=MDTYP
+22 SET ^TMP("MDPXAPI",$JOB,"ENCOUNTER",MDJ,"ENCOUNTER TYPE")=MDETYP
+23 ;MD*1.0*80: If DUZ not defined, zero, not numeric, or null,
+24 ; send DUZ for proxy service. (Considered also validating
+25 ; whether a numeric DUZ sent in by upstream logic exists
+26 ; in file 200. If a numeric DUZ is not in file 200, PCE
+27 ; will send back a processing error of "not a valid pointer
+28 ; to the New Person file #200". This might indicate a
+29 ; configuration issue which the site needs to be aware of.
+30 ; Since PCE performs this validation, there shouldn't be a
+31 ; need for MDPCE* routines to.)
+32 SET MDRES=$$DATA2PCE^PXAPI("^TMP(""MDPXAPI"",$J)",MDPKG,"CLINICAL PROCEDURES",.MDVISIT,$SELECT('$GET(DUZ):$$FINDD^MDPCE(),1:""),"",1,"",.MDPERR)
+33 IF MDRES
SET MDOUT=MDVISIT_"^"_MDCLOC_";"_MDPDTE_";"_MDTYP
SET MDFDA(702,MDINST_",",.07)=MDTYP_";"_MDPDTE_";"_MDCLOC
DO FILE^DIE("K","MDFDA")
KILL ^TMP("MDPXAPI",$JOB)
QUIT MDOUT
+34 KILL ^TMP("MDPXAPI",$JOB)
+35 SET MDOUT="-1^PCE Visit Creation Error."
+36 QUIT MDOUT
+37 ;